diff --git a/_service b/_service
index 7d532e3..01289e3 100644
--- a/_service
+++ b/_service
@@ -4,7 +4,7 @@
git
compiler-rt
- 41cb504b7c4b18ac15830107431a0c1eec73a6b2
+ 127e59048cd3d8dbb80c14b3036918c114089529
%H
llvm
diff --git a/go1.19.changes b/go1.19.changes
index 2d02621..7b297fe 100644
--- a/go1.19.changes
+++ b/go1.19.changes
@@ -1,3 +1,280 @@
+-------------------------------------------------------------------
+Tue Aug 2 17:19:11 UTC 2022 - Jeff Kowalczyk
+
+- go1.19 (released 2022-08-02) is a major release of Go.
+ go1.19.x minor releases will be provided through August 2023.
+ https://github.com/golang/go/wiki/Go-Release-Cycle
+ go1.19 arrives five months after go1.18. Most of its changes are
+ in the implementation of the toolchain, runtime, and libraries.
+ As always, the release maintains the Go 1 promise of
+ compatibility. We expect almost all Go programs to continue to
+ compile and run as before.
+ Refs boo#1200441 go1.19 release tracking
+ * See release notes https://golang.org/doc/go1.19. Excerpts
+ relevant to OBS environment and for SUSE/openSUSE follow:
+ * There is only one small change to the language, a very small
+ correction to the scope of type parameters in method
+ declarations. Existing programs are unaffected.
+ * The Go memory model has been revised to align Go with the
+ memory model used by C, C++, Java, JavaScript, Rust, and
+ Swift. Go only provides sequentially consistent atomics, not
+ any of the more relaxed forms found in other languages. Along
+ with the memory model update, Go 1.19 introduces new types in
+ the sync/atomic package that make it easier to use atomic
+ values, such as atomic.Int64 and atomic.Pointer[T].
+ * go1.19 adds support for the Loongson 64-bit architecture
+ LoongArch on Linux (GOOS=linux, GOARCH=loong64). The ABI
+ implemented is LP64D. Minimum kernel version supported is 5.19.
+ * The riscv64 port now supports passing function arguments and
+ result using registers. Benchmarking shows typical performance
+ improvements of 10% or more on riscv64.
+ * Go 1.19 adds support for links, lists, and clearer headings in
+ doc comments. As part of this change, gofmt now reformats doc
+ comments to make their rendered meaning clearer. See "Go Doc
+ Comments" for syntax details and descriptions of common
+ mistakes now highlighted by gofmt. As another part of this
+ change, the new package go/doc/comment provides parsing and
+ reformatting of doc comments as well as support for rendering
+ them to HTML, Markdown, and text.
+ * The new build constraint "unix" is now recognized in //go:build
+ lines. The constraint is satisfied if the target operating
+ system, also known as GOOS, is a Unix or Unix-like system. For
+ the 1.19 release it is satisfied if GOOS is one of aix,
+ android, darwin, dragonfly, freebsd, hurd, illumos, ios, linux,
+ netbsd, openbsd, or solaris. In future releases the unix
+ constraint may match additional newly supported operating
+ systems.
+ * The -trimpath flag, if set, is now included in the build
+ settings stamped into Go binaries by go build, and can be
+ examined using go version -m or debug.ReadBuildInfo.
+ * go generate now sets the GOROOT environment variable explicitly
+ in the generator's environment, so that generators can locate
+ the correct GOROOT even if built with -trimpath.
+ * go test and go generate now place GOROOT/bin at the beginning
+ of the PATH used for the subprocess, so tests and generators
+ that execute the go command will resolve it to same GOROOT.
+ * go env now quotes entries that contain spaces in the
+ CGO_CFLAGS, CGO_CPPFLAGS, CGO_CXXFLAGS, CGO_FFLAGS,
+ CGO_LDFLAGS, and GOGCCFLAGS variables it reports.
+ * go list -json now accepts a comma-separated list of JSON fields
+ to populate. If a list is specified, the JSON output will
+ include only those fields, and go list may avoid work to
+ compute fields that are not included. In some cases, this may
+ suppress errors that would otherwise be reported.
+ * The go command now caches information necessary to load some
+ modules, which should result in a speed-up of some go list
+ invocations.
+ * The vet checker "errorsas" now reports when errors.As is called
+ with a second argument of type *error, a common mistake.
+ * The runtime now includes support for a soft memory limit. This
+ memory limit includes the Go heap and all other memory managed
+ by the runtime, and excludes external memory sources such as
+ mappings of the binary itself, memory managed in other
+ languages, and memory held by the operating system on behalf of
+ the Go program. This limit may be managed via
+ runtime/debug.SetMemoryLimit or the equivalent GOMEMLIMIT
+ environment variable. The limit works in conjunction with
+ runtime/debug.SetGCPercent / GOGC, and will be respected even
+ if GOGC=off, allowing Go programs to always make maximal use of
+ their memory limit, improving resource efficiency in some
+ cases.
+ * In order to limit the effects of GC thrashing when the
+ program's live heap size approaches the soft memory limit, the
+ Go runtime also attempts to limit total GC CPU utilization to
+ 50%, excluding idle time, choosing to use more memory over
+ preventing application progress. In practice, we expect this
+ limit to only play a role in exceptional cases, and the new
+ runtime metric /gc/limiter/last-enabled:gc-cycle reports when
+ this last occurred.
+ * The runtime now schedules many fewer GC worker goroutines on
+ idle operating system threads when the application is idle
+ enough to force a periodic GC cycle.
+ * The runtime will now allocate initial goroutine stacks based on
+ the historic average stack usage of goroutines. This avoids
+ some of the early stack growth and copying needed in the
+ average case in exchange for at most 2x wasted space on
+ below-average goroutines.
+ * On Unix operating systems, Go programs that import package os
+ now automatically increase the open file limit (RLIMIT_NOFILE)
+ to the maximum allowed value; that is, they change the soft
+ limit to match the hard limit. This corrects artificially low
+ limits set on some systems for compatibility with very old C
+ programs using the select system call. Go programs are not
+ helped by that limit, and instead even simple programs like
+ gofmt often ran out of file descriptors on such systems when
+ processing many files in parallel. One impact of this change is
+ that Go programs that in turn execute very old C programs in
+ child processes may run those programs with too high a
+ limit. This can be corrected by setting the hard limit before
+ invoking the Go program.
+ * Unrecoverable fatal errors (such as concurrent map writes, or
+ unlock of unlocked mutexes) now print a simpler traceback
+ excluding runtime metadata (equivalent to a fatal panic) unless
+ GOTRACEBACK=system or crash. Runtime-internal fatal error
+ tracebacks always include full metadata regardless of the value
+ of GOTRACEBACK
+ * Support for debugger-injected function calls has been added on
+ ARM64, enabling users to call functions from their binary in an
+ interactive debugging session when using a debugger that is
+ updated to make use of this functionality.
+ * The address sanitizer support added in Go 1.18 now handles
+ function arguments and global variables more precisely.
+ * The compiler now uses a jump table to implement large integer
+ and string switch statements. Performance improvements for the
+ switch statement vary but can be on the order of 20%
+ faster. (GOARCH=amd64 and GOARCH=arm64 only)
+ * The Go compiler now requires the -p=importpath flag to build a
+ linkable object file. This is already supplied by the go
+ command and by Bazel. Any other build systems that invoke the
+ Go compiler directly will need to make sure they pass this flag
+ as well.
+ * The Go compiler no longer accepts the -importmap flag. Build
+ systems that invoke the Go compiler directly must use the
+ -importcfg flag instead.
+ * Like the compiler, the assembler now requires the -p=importpath
+ flag to build a linkable object file. This is already supplied
+ by the go command. Any other build systems that invoke the Go
+ assembler directly will need to make sure they pass this flag
+ as well.
+ * Command and LookPath no longer allow results from a PATH search
+ to be found relative to the current directory. This removes a
+ common source of security problems but may also break existing
+ programs that depend on using, say, exec.Command("prog") to run
+ a binary named prog (or, on Windows, prog.exe) in the current
+ directory. See the os/exec package documentation for
+ information about how best to update such programs.
+ * On Windows, Command and LookPath now respect the
+ NoDefaultCurrentDirectoryInExePath environment variable, making
+ it possible to disable the default implicit search of “.” in
+ PATH lookups on Windows systems.
+ * crypto/elliptic: Operating on invalid curve points (those for
+ which the IsOnCurve method returns false, and which are never
+ returned by Unmarshal or by a Curve method operating on a valid
+ point) has always been undefined behavior and can lead to key
+ recovery attacks. If an invalid point is supplied to Marshal,
+ MarshalCompressed, Add, Double, or ScalarMult, they will now
+ panic. ScalarBaseMult operations on the P224, P384, and P521
+ curves are now up to three times faster, leading to similar
+ speedups in some ECDSA operations. The generic (not platform
+ optimized) P256 implementation was replaced with one derived
+ from a formally verified model; this might lead to significant
+ slowdowns on 32-bit platforms.
+ * crypto/rand: Read no longer buffers random data obtained from
+ the operating system between calls. Applications that perform
+ many small reads at high frequency might choose to wrap Reader
+ in a bufio.Reader for performance reasons, taking care to use
+ io.ReadFull to ensure no partial reads occur. The Prime
+ implementation was changed to use only rejection sampling,
+ which removes a bias when generating small primes in
+ non-cryptographic contexts, removes one possible minor timing
+ leak, and better aligns the behavior with BoringSSL, all while
+ simplifying the implementation. The change does produce
+ different outputs for a given random source stream compared to
+ the previous implementation, which can break tests written
+ expecting specific results from specific deterministic random
+ sources. To help prevent such problems in the future, the
+ implementation is now intentionally non-deterministic with
+ respect to the input stream.
+ * crypto/tls: The GODEBUG option tls10default=1 has been
+ removed. It is still possible to enable TLS 1.0 client-side by
+ setting Config.MinVersion. The TLS server and client now reject
+ duplicate extensions in TLS handshakes, as required by RFC
+ 5246, Section 7.4.1.4 and RFC 8446, Section 4.2.
+ * crypto/x509: CreateCertificate no longer supports creating
+ certificates with SignatureAlgorithm set to
+ MD5WithRSA. CreateCertificate no longer accepts negative serial
+ numbers. CreateCertificate will not emit an empty SEQUENCE
+ anymore when the produced certificate has no
+ extensions. ParseCertificate and ParseCertificateRequest now
+ reject certificates and CSRs which contain duplicate
+ extensions. The new CertPool.Clone and CertPool.Equal methods
+ allow cloning a CertPool and checking the equivalence of two
+ CertPools respectively. The new function ParseRevocationList
+ provides a faster, safer to use CRL parser which returns a
+ RevocationList. Parsing a CRL also populates the new
+ RevocationList fields RawIssuer, Signature, AuthorityKeyId, and
+ Extensions, which are ignored by CreateRevocationList. The new
+ method RevocationList.CheckSignatureFrom checks that the
+ signature on a CRL is a valid signature from a Certificate. The
+ ParseCRL and ParseDERCRL functions are now deprecated in favor
+ of ParseRevocationList. The Certificate.CheckCRLSignature
+ method is deprecated in favor of
+ RevocationList.CheckSignatureFrom. The path builder of
+ Certificate.Verify was overhauled and should now produce better
+ chains and/or be more efficient in complicated scenarios. Name
+ constraints are now also enforced on non-leaf certificates.
+ * crypto/x509/pkix: The types CertificateList and
+ TBSCertificateList have been deprecated. The new crypto/x509
+ CRL functionality should be used instead.
+ * debug/elf: The new EM_LOONGARCH and R_LARCH_* constants support
+ the loong64 port.
+ * debug/pe: The new File.COFFSymbolReadSectionDefAux method,
+ which returns a COFFSymbolAuxFormat5, provides access to COMDAT
+ information in PE file sections. These are supported by new
+ IMAGE_COMDAT_* and IMAGE_SCN_* constants.
+ * runtime: The GOROOT function now returns the empty string
+ (instead of "go") when the binary was built with the -trimpath
+ flag set and the GOROOT variable is not set in the process
+ environment.
+ * runtime/metrics: The new /sched/gomaxprocs:threads metric
+ reports the current runtime.GOMAXPROCS value. The new
+ /cgo/go-to-c-calls:calls metric reports the total number of
+ calls made from Go to C. This metric is identical to the
+ runtime.NumCgoCall function. The new
+ /gc/limiter/last-enabled:gc-cycle metric reports the last GC
+ cycle when the GC CPU limiter was enabled. See the runtime
+ notes for details about the GC CPU limiter.
+ * runtime/pprof: Stop-the-world pause times have been
+ significantly reduced when collecting goroutine profiles,
+ reducing the overall latency impact to the application. MaxRSS
+ is now reported in heap profiles for all Unix operating systems
+ (it was previously only reported for GOOS=android, darwin, ios,
+ and linux).
+ * runtime/race: The race detector has been upgraded to use thread
+ sanitizer version v3 on all supported platforms except
+ windows/amd64 and openbsd/amd64, which remain on v2. Compared
+ to v2, it is now typically 1.5x to 2x faster, uses half as much
+ memory, and it supports an unlimited number of goroutines. On
+ Linux, the race detector now requires at least glibc version
+ 2.17 and GNU binutils 2.26. The race detector is now supported
+ on GOARCH=s390x. Race detector support for openbsd/amd64 has
+ been removed from thread sanitizer upstream, so it is unlikely
+ to ever be updated from v2.
+ * runtime/trace: When tracing and the CPU profiler are enabled
+ simultaneously, the execution trace includes CPU profile
+ samples as instantaneous events.
+ * syscall: On PowerPC (GOARCH=ppc64, ppc64le), Syscall, Syscall6,
+ RawSyscall, and RawSyscall6 now always return 0 for return
+ value r2 instead of an undefined value. On AIX and Solaris,
+ Getrusage is now defined.
+
+-------------------------------------------------------------------
+Tue Jul 12 23:39:16 UTC 2022 - Jeff Kowalczyk
+
+- go1.19rc2 (released 2022-07-12) is a release candidate version of
+ go1.19 cut from the master branch at the revision tagged
+ go1.19rc2.
+ Refs boo#1200441 go1.19 release tracking
+
+-------------------------------------------------------------------
+Wed Jul 6 21:40:49 UTC 2022 - Jeff Kowalczyk
+
+- go1.19rc1 (released 2022-07-06) is a release candidate version of
+ go1.19 cut from the master branch at the revision tagged
+ go1.19rc1.
+ Refs boo#1200441 go1.19 release tracking
+
+-------------------------------------------------------------------
+Tue Jun 14 20:00:43 UTC 2022 - Jeff Kowalczyk
+
+- Trace viewer html and javascript files moved from misc/trace in
+ previous versions to src/cmd/trace/static in go1.19.
+ * Added files with mode 0644:
+ /usr/share/go/1.19/src/cmd/trace/static
+ /usr/share/go/1.19/src/cmd/trace/static/README.md
+ /usr/share/go/1.19/src/cmd/trace/static/trace_viewer_full.html
+ /usr/share/go/1.19/src/cmd/trace/static/webcomponents.min.js
+
-------------------------------------------------------------------
Fri Jun 10 20:39:05 UTC 2022 - Jeff Kowalczyk
diff --git a/go1.19.spec b/go1.19.spec
index 7324106..cc0f73c 100644
--- a/go1.19.spec
+++ b/go1.19.spec
@@ -69,11 +69,9 @@
#!BuildIgnore: gcc-PIE
%endif
-# Build go-race only on platforms where it's supported (both amd64 and aarch64
-# requires SLE15-or-later because of C++14, and ppc64le doesn't build at all
-# on openSUSE yet).
+# Build go-race only on platforms where C++14 is supported (SLE-15)
%if 0%{?suse_version} >= 1500 || 0%{?sle_version} >= 150000
-%define tsan_arch x86_64 aarch64
+%define tsan_arch x86_64 aarch64 s390x ppc64le
%else
# Cannot use {nil} here (ifarch doesn't like it) so just make up a fake
# architecture that no build will ever match.
@@ -87,7 +85,11 @@
#
# In order to update the TSAN version, modify _service. See boo#1052528 for
# more details.
+%ifarch x86_64
+%define tsan_commit 127e59048cd3d8dbb80c14b3036918c114089529
+%else
%define tsan_commit 41cb504b7c4b18ac15830107431a0c1eec73a6b2
+%endif
# go_api is the major version of Go.
# Used by go1.x packages and go metapackage for:
@@ -145,7 +147,7 @@
%endif
Name: go1.19
-Version: 1.19beta1
+Version: 1.19
Release: 0
Summary: A compiled, garbage-collected, concurrent programming language
License: BSD-3-Clause
@@ -156,7 +158,10 @@ Source1: go-rpmlintrc
Source4: README.SUSE
Source6: go.gdbinit
# We have to compile TSAN ourselves. boo#1052528
-Source100: llvm-%{tsan_commit}.tar.xz
+# Preferred form when all arches share llvm race version
+# Source100: llvm-%{tsan_commit}.tar.xz
+Source100: llvm-127e59048cd3d8dbb80c14b3036918c114089529.tar.xz
+Source101: llvm-41cb504b7c4b18ac15830107431a0c1eec73a6b2.tar.xz
# PATCH-FIX-OPENSUSE: https://go-review.googlesource.com/c/go/+/391115
Patch7: dont-force-gold-on-arm64.patch
# PATCH-FIX-UPSTREAM marguerite@opensuse.org - find /usr/bin/go-8 when bootstrapping with gcc8-go
@@ -224,7 +229,12 @@ Go runtime race detector libraries. Install this package if you wish to use the
%prep
%ifarch %{tsan_arch}
# compiler-rt (from LLVM)
+%ifarch x86_64
%setup -q -T -b 100 -n llvm-%{tsan_commit}
+%else
+%setup -q -T -b 101 -n llvm-%{tsan_commit}
+%endif
+
%endif
# go
%setup -q -n go
@@ -313,6 +323,14 @@ for ext in *.{go,c,h,s,S,py,syso,bin}; do
done
# executable bash scripts called by go tool, etc
find src -name "*.bash" -exec install -Dm655 \{\} %{buildroot}%{_datadir}/go/%{go_label}/\{\} \;
+# # Trace viewer html and javascript files moved from misc/trace in
+# # previous versions to src/cmd/trace/static in go1.19.
+# # static contains pprof trace viewer html javascript and markdown
+# echo "PWD:" `pwd`
+# echo "GOROOT:" $GOROOT
+# mkdir -v -p $GOROOT/src/cmd/trace/static
+install -d %{buildroot}%{_datadir}/go/%{go_label}/src/cmd/trace/static
+install -Dm644 src/cmd/trace/static/* %{buildroot}%{_datadir}/go/%{go_label}/src/cmd/trace/static
mkdir -p $GOROOT/src
for i in $(ls %{buildroot}/usr/share/go/%{go_label}/src);do
@@ -341,14 +359,14 @@ sed -i "s/\$go_label/%{go_label}/" $GOROOT/bin/gdbinit.d/go.gdb
%endif
# update-alternatives
- mkdir -p %{buildroot}%{_sysconfdir}/alternatives
- mkdir -p %{buildroot}%{_bindir}
- mkdir -p %{buildroot}%{_sysconfdir}/profile.d
- mkdir -p %{buildroot}%{_sysconfdir}/gdbinit.d
- touch %{buildroot}%{_sysconfdir}/alternatives/{go,gofmt,go.gdb}
- ln -sf %{_sysconfdir}/alternatives/go %{buildroot}%{_bindir}/go
- ln -sf %{_sysconfdir}/alternatives/gofmt %{buildroot}%{_bindir}/gofmt
- ln -sf %{_sysconfdir}/alternatives/go.gdb %{buildroot}%{_sysconfdir}/gdbinit.d/go.gdb
+mkdir -p %{buildroot}%{_sysconfdir}/alternatives
+mkdir -p %{buildroot}%{_bindir}
+mkdir -p %{buildroot}%{_sysconfdir}/profile.d
+mkdir -p %{buildroot}%{_sysconfdir}/gdbinit.d
+touch %{buildroot}%{_sysconfdir}/alternatives/{go,gofmt,go.gdb}
+ln -sf %{_sysconfdir}/alternatives/go %{buildroot}%{_bindir}/go
+ln -sf %{_sysconfdir}/alternatives/gofmt %{buildroot}%{_bindir}/gofmt
+ln -sf %{_sysconfdir}/alternatives/go.gdb %{buildroot}%{_sysconfdir}/gdbinit.d/go.gdb
# documentation and examples
# fix documetation permissions (rpmlint warning)
@@ -357,7 +375,7 @@ find doc/ misc/ -type f -exec chmod 0644 '{}' +
rm -rf misc/cgo/test/{_*,*.o,*.out,*.6,*.8}
# prepare go-doc
mkdir -p %{buildroot}%{_docdir}/go/%{go_label}
-cp -r AUTHORS CONTRIBUTORS CONTRIBUTING.md LICENSE PATENTS README.md README.SUSE %{buildroot}%{_docdir}/go/%{go_label}
+cp -r CONTRIBUTING.md LICENSE PATENTS README.md README.SUSE %{buildroot}%{_docdir}/go/%{go_label}
cp -r doc/* %{buildroot}%{_docdir}/go/%{go_label}
%fdupes -s %{buildroot}%{_prefix}
@@ -388,8 +406,6 @@ fi
%ghost %{_sysconfdir}/alternatives/go.gdb
%dir %{_docdir}/go
%dir %{_docdir}/go/%{go_label}
-%doc %{_docdir}/go/%{go_label}/AUTHORS
-%doc %{_docdir}/go/%{go_label}/CONTRIBUTORS
%doc %{_docdir}/go/%{go_label}/CONTRIBUTING.md
%doc %{_docdir}/go/%{go_label}/PATENTS
%doc %{_docdir}/go/%{go_label}/README.md
diff --git a/go1.19.src.tar.gz b/go1.19.src.tar.gz
new file mode 100644
index 0000000..1583f87
--- /dev/null
+++ b/go1.19.src.tar.gz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9419cc70dc5a2523f29a77053cafff658ed21ef3561d9b6b020280ebceab28b9
+size 26521849
diff --git a/go1.19beta1.src.tar.gz b/go1.19beta1.src.tar.gz
deleted file mode 100644
index e40babd..0000000
--- a/go1.19beta1.src.tar.gz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f463e5a5c25eebdea06d7ae3890c91de2f3795304e9fa350505804d826ec2683
-size 26333687
diff --git a/llvm-127e59048cd3d8dbb80c14b3036918c114089529.tar.xz b/llvm-127e59048cd3d8dbb80c14b3036918c114089529.tar.xz
new file mode 100644
index 0000000..27d586c
--- /dev/null
+++ b/llvm-127e59048cd3d8dbb80c14b3036918c114089529.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6e0ba571f59de5ae92357c53b36930cc63beebd5be715a58813f7ba166787cc5
+size 2358388