Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package go1.18 for openSUSE:Factory checked 
in at 2022-03-16 20:20:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/go1.18 (Old)
 and      /work/SRC/openSUSE:Factory/.go1.18.new.25692 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "go1.18"

Wed Mar 16 20:20:37 2022 rev:5 rq:962260 version:1.18

Changes:
--------
--- /work/SRC/openSUSE:Factory/go1.18/go1.18.changes    2022-02-18 
23:03:20.569410968 +0100
+++ /work/SRC/openSUSE:Factory/.go1.18.new.25692/go1.18.changes 2022-03-16 
20:20:42.948980977 +0100
@@ -1,0 +2,276 @@
+Tue Mar 15 17:42:07 UTC 2022 - Jeff Kowalczyk <jkowalc...@suse.com>
+
+- go1.18 (released 2022-03-15) is a major release of Go.
+  go1.18.x minor releases will be provided through February 2023.
+  https://github.com/golang/go/wiki/Go-Release-Cycle
+  Go 1.18 is a significant release, including changes to the
+  language, implementation of the toolchain, runtime, and
+  libraries. Go 1.18 arrives seven months after Go 1.17. 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#1193742 go1.18 release tracking
+  * See release notes https://golang.org/doc/go1.18. Excerpts
+    relevant to OBS environment and for SUSE/openSUSE follow:
+  * Go 1.18 includes an implementation of generic features as
+    described by the Type Parameters Proposal. This includes major
+    but fully backward-compatible changes to the language.
+  * The Go 1.18 compiler now correctly reports declared but not
+    used errors for variables that are set inside a function
+    literal but are never used. Before Go 1.18, the compiler did
+    not report an error in such cases. This fixes long-outstanding
+    compiler issue go#8560.
+  * The Go 1.18 compiler now reports an overflow when passing a
+    rune constant expression such as '1' << 32 as an argument to
+    the predeclared functions print and println, consistent with
+    the behavior of user-defined functions. Before Go 1.18, the
+    compiler did not report an error in such cases but silently
+    accepted such constant arguments if they fit into an
+    int64. Since go vet always pointed out this error, the number
+    of affected programs is likely very small.
+  * AMD64: Go 1.18 introduces the new GOAMD64 environment variable,
+    which selects at compile time a minimum target version of the
+    AMD64 architecture. Allowed values are v1, v2, v3, or v4. Each
+    higher level requires, and takes advantage of, additional
+    processor features. A detailed description can be found
+    here. The GOAMD64 environment variable defaults to v1.
+  * RISC-V: The 64-bit RISC-V architecture on Linux (the
+    linux/riscv64 port) now supports the c-archive and c-shared
+    build modes.
+  * Linux: Go 1.18 requires Linux kernel version 2.6.32 or later.
+  * Fuzzing: Go 1.18 includes an implementation of fuzzing as
+    described by the fuzzing proposal. See the fuzzing landing page
+    to get started. Please be aware that fuzzing can consume a lot
+    of memory and may impact your machine???s performance while it
+    runs.
+  * go get: go get no longer builds or installs packages in
+    module-aware mode. go get is now dedicated to adjusting
+    dependencies in go.mod. Effectively, the -d flag is always
+    enabled. To install the latest version of an executable outside
+    the context of the current module, use go install
+    example.com/cmd@latest. Any version query may be used instead
+    of latest. This form of go install was added in Go 1.16, so
+    projects supporting older versions may need to provide install
+    instructions for both go install and go get. go get now reports
+    an error when used outside a module, since there is no go.mod
+    file to update. In GOPATH mode (with GO111MODULE=off), go get
+    still builds and installs packages, as before.
+  * Automatic go.mod and go.sum updates: The go mod graph, go mod
+    vendor, go mod verify, and go mod why subcommands no longer
+    automatically update the go.mod and go.sum files. (Those files
+    can be updated explicitly using go get, go mod tidy, or go mod
+    download.)
+  * go version: The go command now embeds version control
+    information in binaries. It includes the currently checked-out
+    revision, commit time, and a flag indicating whether edited or
+    untracked files are present. Version control information is
+    embedded if the go command is invoked in a directory within a
+    Git, Mercurial, Fossil, or Bazaar repository, and the main
+    package and its containing main module are in the same
+    repository. This information may be omitted using the flag
+    -buildvcs=false. Additionally, the go command embeds
+    information about the build, including build and tool tags (set
+    with -tags), compiler, assembler, and linker flags (like
+    -gcflags), whether cgo was enabled, and if it was, the values
+    of the cgo environment variables (like CGO_CFLAGS). Both VCS
+    and build information may be read together with module
+    information using go version -m file or
+    runtime/debug.ReadBuildInfo (for the currently running binary)
+    or the new debug/buildinfo package. The underlying data format
+    of the embedded build information can change with new go
+    releases, so an older version of go may not handle the build
+    information produced with a newer version of go. To read the
+    version information from a binary built with go 1.18, use the
+    go version command and the debug/buildinfo package from go
+    1.18+.
+  * go mod download: If the main module's go.mod file specifies go
+    1.17 or higher, go mod download without arguments now downloads
+    source code for only the modules explicitly required in the
+    main module's go.mod file. (In a go 1.17 or higher module, that
+    set already includes all dependencies needed to build the
+    packages and tests in the main module.) To also download source
+    code for transitive dependencies, use go mod download all.
+  * go mod vendor: The go mod vendor subcommand now supports a -o
+    flag to set the output directory. (Other go commands still read
+    from the vendor directory at the module root when loading
+    packages with -mod=vendor, so the main use for this flag is for
+    third-party tools that need to collect package source code.)
+  * go mod tidy: The go mod tidy command now retains additional
+    checksums in the go.sum file for modules whose source code is
+    needed to verify that each imported package is provided by only
+    one module in the build list. Because this condition is rare
+    and failure to apply it results in a build error, this change
+    is not conditioned on the go version in the main module's
+    go.mod file.
+  * go work: The go command now supports a "Workspace" mode. If a
+    go.work file is found in the working directory or a parent
+    directory, or one is specified using the GOWORK environment
+    variable, it will put the go command into workspace mode. In
+    workspace mode, the go.work file will be used to determine the
+    set of main modules used as the roots for module resolution,
+    instead of using the normally-found go.mod file to specify the
+    single main module. For more information see the go work
+    documentation.
+  * go build -asan: The go build command and related commands now
+    support an -asan flag that enables interoperation with C (or
+    C++) code compiled with the address sanitizer (C compiler
+    option -fsanitize=address).
+  * //go:build lines: Go 1.17 introduced //go:build lines as a more
+    readable way to write build constraints, instead of // +build
+    lines. As of Go 1.17, gofmt adds //go:build lines to match
+    existing +build lines and keeps them in sync, while go vet
+    diagnoses when they are out of sync. Since the release of Go
+    1.18 marks the end of support for Go 1.16, all supported
+    versions of Go now understand //go:build lines. In Go 1.18, go
+    fix now removes the now-obsolete // +build lines in modules
+    declaring go 1.17 or later in their go.mod files. For more
+    information, see https://go.dev/design/draft-gobuild.
+  * go vet: The vet tool is updated to support generic code. In
+    most cases, it reports an error in generic code whenever it
+    would report an error in the equivalent non-generic code after
+    substituting for type parameters with a type from their type
+    set.
+  * go vet: The cmd/vet checkers copylock, printf, sortslice,
+    testinggoroutine, and tests have all had moderate precision
+    improvements to handle additional code patterns. This may lead
+    to newly reported errors in existing packages.
+  * Runtime: The garbage collector now includes non-heap sources of
+    garbage collector work (e.g., stack scanning) when determining
+    how frequently to run. As a result, garbage collector overhead
+    is more predictable when these sources are significant. For
+    most applications these changes will be negligible; however,
+    some Go applications may now use less memory and spend more
+    time on garbage collection, or vice versa, than before. The
+    intended workaround is to tweak GOGC where necessary. The
+    runtime now returns memory to the operating system more
+    efficiently and has been tuned to work more aggressively as a
+    result.
+  * Compiler: Go 1.17 implemented a new way of passing function
+    arguments and results using registers instead of the stack on
+    64-bit x86 architecture on selected operating systems. Go 1.18
+    expands the supported platforms to include 64-bit ARM
+    (GOARCH=arm64), big- and little-endian 64-bit PowerPC
+    (GOARCH=ppc64, ppc64le), as well as 64-bit x86 architecture
+    (GOARCH=amd64) on all operating systems. On 64-bit ARM and
+    64-bit PowerPC systems, benchmarking shows typical performance
+    improvements of 10% or more. As mentioned in the Go 1.17
+    release notes, this change does not affect the functionality of
+    any safe Go code and is designed to have no impact on most
+    assembly code. See the Go 1.17 release notes for more details.
+  * Compiler: The compiler now can inline functions that contain
+    range loops or labeled for loops.
+  * Compiler: The new -asan compiler option supports the new go
+    command -asan option.
+  * Compiler: Because the compiler's type checker was replaced in
+    its entirety to support generics, some error messages now may
+    use different wording than before. In some cases, pre-Go 1.18
+    error messages provided more detail or were phrased in a more
+    helpful way. We intend to address these cases in Go
+    1.19. Because of changes in the compiler related to supporting
+    generics, the Go 1.18 compile speed can be roughly 15% slower
+    than the Go 1.17 compile speed. The execution time of the
+    compiled code is not affected. We intend to improve the speed
+    of the compiler in Go 1.19.
+  * Linker: The linker emits far fewer relocations. As a result,
+    most codebases will link faster, require less memory to link,
+    and generate smaller binaries. Tools that process Go binaries
+    should use Go 1.18's debug/gosym package to transparently
+    handle both old and new binaries.
+  * Linker: The new -asan linker option supports the new go command
+    -asan option.
+  * Bootstrap: When building a Go release from source and
+    GOROOT_BOOTSTRAP is not set, previous versions of Go looked for
+    a Go 1.4 or later bootstrap toolchain in the directory
+    $HOME/go1.4 (%HOMEDRIVE%%HOMEPATH%\go1.4 on Windows). Go now
+    looks first for $HOME/go1.17 or $HOME/sdk/go1.17 before falling
+    back to $HOME/go1.4. We intend for Go 1.19 to require Go 1.17
+    or later for bootstrap, and this change should make the
+    transition smoother. For more details, see go#44505.
+  * The new debug/buildinfo package provides access to module
+    versions, version control information, and build flags embedded
+    in executable files built by the go command. The same
+    information is also available via runtime/debug.ReadBuildInfo
+    for the currently running binary and via go version -m on the
+    command line.
+  * The new net/netip package defines a new IP address type,
+    Addr. Compared to the existing net.IP type, the netip.Addr type
+    takes less memory, is immutable, and is comparable so it
++++ 79 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/go1.18/go1.18.changes
++++ and /work/SRC/openSUSE:Factory/.go1.18.new.25692/go1.18.changes

Old:
----
  go1.18rc1.src.tar.gz

New:
----
  dont-force-gold-on-arm64.patch
  go1.18.src.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ go1.18.spec ++++++
--- /var/tmp/diff_new_pack.7LSc1U/_old  2022-03-16 20:20:43.916981674 +0100
+++ /var/tmp/diff_new_pack.7LSc1U/_new  2022-03-16 20:20:43.920981677 +0100
@@ -135,7 +135,7 @@
 %endif
 
 Name:           go1.18
-Version:        1.18rc1
+Version:        1.18
 Release:        0
 Summary:        A compiled, garbage-collected, concurrent programming language
 License:        BSD-3-Clause
@@ -147,6 +147,8 @@
 Source6:        go.gdbinit
 # We have to compile TSAN ourselves. boo#1052528
 Source100:      llvm-%{tsan_commit}.tar.xz
+# PATCH-FIX-OPENSUSE: https://go-review.googlesource.com/c/go/+/391115
+Patch7:         dont-force-gold-on-arm64.patch
 # PATCH-FIX-UPSTREAM marguer...@opensuse.org - find /usr/bin/go-5 when 
bootstrapping with gcc5-go
 Patch8:         gcc6-go.patch
 Patch9:         gcc7-go.patch
@@ -169,22 +171,8 @@
 %endif
 #BNC#818502 debug edit tool of rpm fails on i586 builds
 BuildRequires:  rpm >= 4.11.1
-# Needed on arm aarch64 to avoid
-# collect2: fatal error: cannot find 'ld'-
-%ifarch %arm aarch64
-BuildRequires:  binutils-gold
-%endif
 Requires(post): update-alternatives
 Requires(postun):update-alternatives
-# Needed on arm aarch64 to avoid
-# collect2: fatal error: cannot find 'ld'-
-%ifarch %arm aarch64
-%if 0%{?is_opensuse}
-Requires:       binutils-gold
-%else
-Recommends:     binutils-gold
-%endif
-%endif
 Requires:       gcc
 Provides:       go = %{version}
 Provides:       go-devel = go%{version}
@@ -234,6 +222,7 @@
 %endif
 # go
 %setup -q -n go
+%patch7 -p1
 %if %{with gccgo}
 %if 0%{?gcc_go_version} == 6
 %patch8 -p1

++++++ dont-force-gold-on-arm64.patch ++++++
--- go/src/cmd/link/internal/ld/lib.go
+++ go/src/cmd/link/internal/ld/lib.go
@@ -1391,30 +1391,6 @@
                        // Use lld to avoid errors from default linker (issue 
#38838)
                        altLinker = "lld"
                }
-
-               if ctxt.Arch.InFamily(sys.ARM, sys.ARM64) && buildcfg.GOOS == 
"linux" {
-                       // On ARM, the GNU linker will generate COPY relocations
-                       // even with -znocopyreloc set.
-                       // https://sourceware.org/bugzilla/show_bug.cgi?id=19962
-                       //
-                       // On ARM64, the GNU linker will fail instead of
-                       // generating COPY relocations.
-                       //
-                       // In both cases, switch to gold.
-                       altLinker = "gold"
-
-                       // If gold is not installed, gcc will silently switch
-                       // back to ld.bfd. So we parse the version information
-                       // and provide a useful error if gold is missing.
-                       name, args := flagExtld[0], flagExtld[1:]
-                       args = append(args, "-fuse-ld=gold", "-Wl,--version")
-                       cmd := exec.Command(name, args...)
-                       if out, err := cmd.CombinedOutput(); err == nil {
-                               if !bytes.Contains(out, []byte("GNU gold")) {
-                                       log.Fatalf("ARM external linker must be 
gold (issue #15696), but is not: %s", out)
-                               }
-                       }
-               }
        }
        if ctxt.Arch.Family == sys.ARM64 && buildcfg.GOOS == "freebsd" {
                // Switch to ld.bfd on freebsd/arm64.

++++++ go1.18rc1.src.tar.gz -> go1.18.src.tar.gz ++++++
/work/SRC/openSUSE:Factory/go1.18/go1.18rc1.src.tar.gz 
/work/SRC/openSUSE:Factory/.go1.18.new.25692/go1.18.src.tar.gz differ: char 15, 
line 1

Reply via email to