Browse Source

golang update to 1.13.4

Signed-off-by: basebuilder_pel7x64builder0 <basebuilder@powerel.org>
master
basebuilder_pel7x64builder0 5 years ago
parent
commit
ca5a0d89bf
  1. 80
      SOURCES/golang-ppc64-linker.patch
  2. 3
      SOURCES/golang-prelink.conf
  3. 8
      SOURCES/macros.golang
  4. 83
      SPECS/golang.spec

80
SOURCES/golang-ppc64-linker.patch

@ -1,30 +1,66 @@ @@ -1,30 +1,66 @@
--- src/cmd/link/internal/ld/config.go 2019-03-14 20:43:37.000000000 +0100
+++ src/cmd/link/internal/ld/config.go 2019-03-20 23:50:07.660000000 +0100
@@ -247,9 +247,6 @@
}
ctxt.LinkMode = LinkInternal
case "1":
- if objabi.GOARCH == "ppc64" {
--- src/cmd/link/internal/ld/config.go 2019-11-18 12:11:12.010000000 +0100
+++ src/cmd/link/internal/ld/config.go 2019-11-18 12:16:23.420000000 +0100
@@ -70,7 +70,7 @@
*mode = BuildModeCArchive
case "c-shared":
switch objabi.GOARCH {
- case "386", "amd64", "arm", "arm64", "ppc64le", "s390x":
+ case "386", "amd64", "arm", "arm64", "ppc64", "ppc64le", "s390x":
default:
return badmode()
}
@@ -79,7 +79,7 @@
switch objabi.GOOS {
case "linux":
switch objabi.GOARCH {
- case "386", "amd64", "arm", "arm64", "ppc64le", "s390x":
+ case "386", "amd64", "arm", "arm64", "ppc64", "ppc64le", "s390x":
default:
return badmode()
}
@@ -91,7 +91,7 @@
switch objabi.GOOS {
case "linux":
switch objabi.GOARCH {
- case "386", "amd64", "arm", "arm64", "s390x", "ppc64le":
+ case "386", "amd64", "arm", "arm64", "s390x", "ppc64le", "ppc64":
default:
return badmode()
}
@@ -186,7 +186,7 @@
// Internally linking cgo is incomplete on some architectures.
// https://golang.org/issue/14449
// https://golang.org/issue/21961
- if iscgo && ctxt.Arch.InFamily(sys.MIPS64, sys.MIPS, sys.PPC64) {
+ if iscgo && ctxt.Arch.InFamily(sys.MIPS64, sys.MIPS) {
return true, objabi.GOARCH + " does not support internal cgo"
}
@@ -241,9 +241,6 @@
}
ctxt.LinkMode = LinkInternal
case "1":
- if objabi.GOARCH == "ppc64" && objabi.GOOS != "aix" {
- Exitf("external linking requested via GO_EXTLINK_ENABLED but not supported for %s/ppc64", objabi.GOOS)
- }
ctxt.LinkMode = LinkExternal
default:
if needed, _ := mustLinkExternal(ctxt); needed {
@@ -261,17 +258,10 @@
} else {
ctxt.LinkMode = LinkInternal
}
- if objabi.GOARCH == "ppc64" && ctxt.LinkMode == LinkExternal {
ctxt.LinkMode = LinkExternal
default:
if needed, _ := mustLinkExternal(ctxt); needed {
@@ -255,17 +252,10 @@
} else {
ctxt.LinkMode = LinkInternal
}
- if objabi.GOARCH == "ppc64" && objabi.GOOS != "aix" && ctxt.LinkMode == LinkExternal {
- Exitf("external linking is not supported for %s/ppc64", objabi.GOOS)
- }
}
case LinkInternal:
if needed, reason := mustLinkExternal(ctxt); needed {
Exitf("internal linking requested but external linking required: %s", reason)
}
}
case LinkInternal:
if needed, reason := mustLinkExternal(ctxt); needed {
Exitf("internal linking requested but external linking required: %s", reason)
}
- case LinkExternal:
- if objabi.GOARCH == "ppc64" {
- if objabi.GOARCH == "ppc64" && objabi.GOOS != "aix" {
- Exitf("external linking not supported for %s/ppc64", objabi.GOOS)
- }
}
}
}

3
SOURCES/golang-prelink.conf

@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
# there are ELF files in src which are testdata and shouldn't be modified
-b /usr/lib/golang/src
-b /usr/lib64/golang/src

8
SOURCES/macros.golang

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
# Where to set GOPATH for builds. Like:
# export GOPATH=$(pwd)/_build:%{gopath}
%gopath %{_datadir}/gocode

# for use like:
# ExclusiveArch: %{go_arches}
%go_arches %{ix86} x86_64 %{arm} aarch64 ppc64le

83
SPECS/golang.spec

@ -78,6 +78,10 @@ @@ -78,6 +78,10 @@

# Fedora GOROOT
%global goroot /usr/lib/%{name}
%global gopath %{_datadir}/gocode
%global go_arches %{ix86} x86_64 %{arm} aarch64 ppc64 ppc64le
%global golibdir %{_libdir}/golang


%ifarch x86_64
%global gohostarch amd64
@ -101,11 +105,11 @@ @@ -101,11 +105,11 @@
%global gohostarch s390x
%endif

%global go_api 1.12.9
%global go_version 1.12.9
%global go_api 1.13
%global go_version 1.13.4

Name: golang
Version: 1.12.9
Version: 1.13.4
Release: 1%{?dist}
Summary: The Go Programming Language
# source tree includes several copies of Mark.Twain-Tom.Sawyer.txt under Public Domain
@ -127,9 +131,10 @@ BuildRequires: hostname @@ -127,9 +131,10 @@ BuildRequires: hostname
BuildRequires: net-tools
%endif
# for tests
BuildRequires: pcre-devel, glibc-static, procps-ng
BuildRequires: pcre-devel, glibc-static, procps-ng, perl

Provides: go = %{version}-%{release}
Provides: go-srpms-macros

# Bundled/Vendored provides generated by
# go list -f {{.ImportPath}} ./src/vendor/... | sed "s:_$PWD/src/vendor/::g;s:_:.:;s:.*:Provides\: bundled(golang(&)):" && go list -f {{.ImportPath}} ./src/cmd/vendor/... | sed "s:_$PWD/src/cmd/vendor/::g;s:_:.:;s:.*:Provides\: bundled(golang(&)):"
@ -137,7 +142,9 @@ Provides: bundled(golang(golang.org/x/crypto/chacha20poly1305)) @@ -137,7 +142,9 @@ Provides: bundled(golang(golang.org/x/crypto/chacha20poly1305))
Provides: bundled(golang(golang.org/x/crypto/cryptobyte))
Provides: bundled(golang(golang.org/x/crypto/cryptobyte/asn1))
Provides: bundled(golang(golang.org/x/crypto/curve25519))
Provides: bundled(golang(golang.org/x/crypto/hkdf))
Provides: bundled(golang(golang.org/x/crypto/internal/chacha20))
Provides: bundled(golang(golang.org/x/crypto/internal/subtle))
Provides: bundled(golang(golang.org/x/crypto/poly1305))
Provides: bundled(golang(golang.org/x/net/dns/dnsmessage))
Provides: bundled(golang(golang.org/x/net/http/httpguts))
@ -147,6 +154,7 @@ Provides: bundled(golang(golang.org/x/net/idna)) @@ -147,6 +154,7 @@ Provides: bundled(golang(golang.org/x/net/idna))
Provides: bundled(golang(golang.org/x/net/internal/nettest))
Provides: bundled(golang(golang.org/x/net/nettest))
Provides: bundled(golang(golang.org/x/text/secure))
Provides: bundled(golang(golang.org/x/sys/cpu))
Provides: bundled(golang(golang.org/x/text/secure/bidirule))
Provides: bundled(golang(golang.org/x/text/transform))
Provides: bundled(golang(golang.org/x/text/unicode))
@ -163,6 +171,7 @@ Provides: bundled(golang(github.com/google/pprof/internal/proftest)) @@ -163,6 +171,7 @@ Provides: bundled(golang(github.com/google/pprof/internal/proftest))
Provides: bundled(golang(github.com/google/pprof/internal/report))
Provides: bundled(golang(github.com/google/pprof/internal/symbolizer))
Provides: bundled(golang(github.com/google/pprof/internal/symbolz))
Provides: bundled(golang(github.com/google/pprof/internal/transport))
Provides: bundled(golang(github.com/google/pprof/profile))
Provides: bundled(golang(github.com/google/pprof/third.party/d3))
Provides: bundled(golang(github.com/google/pprof/third.party/d3flamegraph))
@ -176,6 +185,41 @@ Provides: bundled(golang(golang.org/x/crypto/ssh/terminal)) @@ -176,6 +185,41 @@ Provides: bundled(golang(golang.org/x/crypto/ssh/terminal))
Provides: bundled(golang(golang.org/x/sys/unix))
Provides: bundled(golang(golang.org/x/sys/windows))
Provides: bundled(golang(golang.org/x/sys/windows/registry))
Provides: bundled(golang(golang.org/x/tools/go/analysis))
Provides: bundled(golang(golang.org/x/tools/go/analysis/internal/analysisflags))
Provides: bundled(golang(golang.org/x/tools/go/analysis/internal/facts))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/asmdecl))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/assign))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/atomic))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/bools))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/buildtag))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/cgocall))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/composite))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/copylock))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/ctrlflow))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/errorsas))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/httpresponse))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/inspect))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/internal/analysisutil))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/loopclosure))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/lostcancel))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/nilfunc))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/printf))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/shift))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/stdmethods))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/structtag))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/tests))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/unmarshal))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/unreachable))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/unsafeptr))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/unusedresult))
Provides: bundled(golang(golang.org/x/tools/go/analysis/unitchecker))
Provides: bundled(golang(golang.org/x/tools/go/ast/astutil))
Provides: bundled(golang(golang.org/x/tools/go/ast/inspector))
Provides: bundled(golang(golang.org/x/tools/go/cfg))
Provides: bundled(golang(golang.org/x/tools/go/types/objectpath))
Provides: bundled(golang(golang.org/x/tools/go/types/typeutil))


Requires: %{name}-bin = %{version}-%{release}
Requires: %{name}-src = %{version}-%{release}
@ -196,9 +240,12 @@ Obsoletes: %{name}-vim < 1.4 @@ -196,9 +240,12 @@ Obsoletes: %{name}-vim < 1.4
Obsoletes: emacs-%{name} < 1.4

# These are the only RHEL/Fedora architectures that we compile this package for
ExclusiveArch: %{golang_arches}
ExclusiveArch: %{go_arches}

Source100: golang-gdbinit
Source101: golang-prelink.conf
Source102: macros.golang


%description
%{summary}.
@ -267,6 +314,8 @@ Obsoletes: golang-cover < 0-12.1 @@ -267,6 +314,8 @@ Obsoletes: golang-cover < 0-12.1

Requires(post): %{_sbindir}/update-alternatives
Requires(postun): %{_sbindir}/update-alternatives
Requires(preun): %{_sbindir}/update-alternatives


# We strip the meta dependency, but go does require glibc.
# This is an odd issue, still looking for a better fix.
@ -459,6 +508,21 @@ ln -sf /etc/alternatives/gofmt $RPM_BUILD_ROOT%{_bindir}/gofmt @@ -459,6 +508,21 @@ ln -sf /etc/alternatives/gofmt $RPM_BUILD_ROOT%{_bindir}/gofmt
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/gdbinit.d
cp -av %{SOURCE100} $RPM_BUILD_ROOT%{_sysconfdir}/gdbinit.d/golang.gdb

# prelink blacklist
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/prelink.conf.d
cp -av %{SOURCE101} $RPM_BUILD_ROOT%{_sysconfdir}/prelink.conf.d/golang.conf

# rpm macros
mkdir -p %{buildroot}
%if 0%{?rhel} > 6 || 0%{?fedora} > 0
mkdir -p $RPM_BUILD_ROOT%{_rpmconfigdir}/macros.d
cp -av %{SOURCE102} $RPM_BUILD_ROOT%{_rpmconfigdir}/macros.d/macros.golang
%else
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rpm
cp -av %{SOURCE102} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.golang
%endif


%check
export GOROOT=$(pwd -P)
export PATH="$GOROOT"/bin:"$PATH"
@ -527,6 +591,15 @@ fi @@ -527,6 +591,15 @@ fi
# gdbinit (for gdb debugging)
%{_sysconfdir}/gdbinit.d

# prelink blacklist
%{_sysconfdir}/prelink.conf.d

%if 0%{?rhel} > 6 || 0%{?fedora} > 0
%{_rpmconfigdir}/macros.d/macros.golang
%else
%{_sysconfdir}/rpm/macros.golang
%endif

%files -f go-src.list src

%files -f go-docs.list docs

Loading…
Cancel
Save