Accepting request 993859 from home:jfkw:branches:devel:languages:go
- go1.19 (released 2022-08-02) is a major release of Go. go1.19.x minor releases will be provided through August 2023. OBS-URL: https://build.opensuse.org/request/show/993859 OBS-URL: https://build.opensuse.org/package/show/devel:languages:go/go1.19?expand=0&rev=3
This commit is contained in:
parent
9d1f6547c4
commit
6ed8b4e6d6
2
_service
2
_service
@ -4,7 +4,7 @@
|
||||
<param name="scm">git</param>
|
||||
<param name="include">compiler-rt</param>
|
||||
<!-- [boo#1052528] Always make sure this is kept up to date with src/runtime/race/README. -->
|
||||
<param name="revision">41cb504b7c4b18ac15830107431a0c1eec73a6b2</param>
|
||||
<param name="revision">127e59048cd3d8dbb80c14b3036918c114089529</param>
|
||||
<param name="versionformat">%H</param>
|
||||
<param name="filename">llvm</param>
|
||||
</service>
|
||||
|
277
go1.19.changes
277
go1.19.changes
@ -1,3 +1,280 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 2 17:19:11 UTC 2022 - Jeff Kowalczyk <jkowalczyk@suse.com>
|
||||
|
||||
- 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 <jkowalczyk@suse.com>
|
||||
|
||||
- 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 <jkowalczyk@suse.com>
|
||||
|
||||
- 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 <jkowalczyk@suse.com>
|
||||
|
||||
- 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 <jkowalczyk@suse.com>
|
||||
|
||||
|
34
go1.19.spec
34
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
|
||||
@ -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
|
||||
|
3
go1.19.src.tar.gz
Normal file
3
go1.19.src.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9419cc70dc5a2523f29a77053cafff658ed21ef3561d9b6b020280ebceab28b9
|
||||
size 26521849
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f463e5a5c25eebdea06d7ae3890c91de2f3795304e9fa350505804d826ec2683
|
||||
size 26333687
|
BIN
llvm-127e59048cd3d8dbb80c14b3036918c114089529.tar.xz
(Stored with Git LFS)
Normal file
BIN
llvm-127e59048cd3d8dbb80c14b3036918c114089529.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user