diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE
index 2cf7141c4fa3fc13896a32aceba9bbfd7c4c3792..aeada9f8d0c136943896a3b5bb4604d22c1485d8 100644
--- a/gcc/go/gofrontend/MERGE
+++ b/gcc/go/gofrontend/MERGE
@@ -1,4 +1,4 @@
-0058658a9efb6e5c5faa6f0f65949beea5ddbc98
+bbb3a4347714faee620dc205674510a0f20b81ae
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
diff --git a/libgo/go/syscall/dir_plan9.go b/libgo/go/syscall/dir_plan9.go
index 4ed052de7619edea255d74df0f4628a23b907d42..1667cbc02f49e0e11cf1508d55f05f87aeaa4b24 100644
--- a/libgo/go/syscall/dir_plan9.go
+++ b/libgo/go/syscall/dir_plan9.go
@@ -184,6 +184,7 @@ func gbit8(b []byte) (uint8, []byte) {
 }
 
 // gbit16 reads a 16-bit number in little-endian order from b and returns it with the remaining slice of b.
+//
 //go:nosplit
 func gbit16(b []byte) (uint16, []byte) {
 	return uint16(b[0]) | uint16(b[1])<<8, b[2:]
diff --git a/libgo/go/syscall/errstr.go b/libgo/go/syscall/errstr.go
index 6c2441d364d720108d3ac2ea8b3125d2c041d7bc..59f7a82c6d73e4b3c11033bb75a2669ce0e25b92 100644
--- a/libgo/go/syscall/errstr.go
+++ b/libgo/go/syscall/errstr.go
@@ -4,8 +4,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build !hurd
-// +build !linux
+//go:build !hurd && !linux
+// +build !hurd,!linux
 
 package syscall
 
diff --git a/libgo/go/syscall/errstr_glibc.go b/libgo/go/syscall/errstr_glibc.go
index 5b19e6f202d8475c99e0633b41844550c02bb26d..03a327dbc909a6bc0c26156db3d3f676c0c46a80 100644
--- a/libgo/go/syscall/errstr_glibc.go
+++ b/libgo/go/syscall/errstr_glibc.go
@@ -7,6 +7,7 @@
 // We use this rather than errstr.go because on GNU/Linux sterror_r
 // returns a pointer to the error message, and may not use buf at all.
 
+//go:build hurd || linux
 // +build hurd linux
 
 package syscall
diff --git a/libgo/go/syscall/exec_bsd.go b/libgo/go/syscall/exec_bsd.go
index 86e513efdea86b530d5324ae9e098425aa06f143..e631593cbd95ec4f6c01a4b7ac84574f73cca337 100644
--- a/libgo/go/syscall/exec_bsd.go
+++ b/libgo/go/syscall/exec_bsd.go
@@ -49,6 +49,7 @@ func runtime_AfterForkInChild()
 // For the same reason compiler does not race instrument it.
 // The calls to RawSyscall are okay because they are assembly
 // functions that do not grow the stack.
+//
 //go:norace
 func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr *ProcAttr, sys *SysProcAttr, pipe int) (pid int, err Errno) {
 	// Declare all variables at top in case any
diff --git a/libgo/go/syscall/exec_freebsd.go b/libgo/go/syscall/exec_freebsd.go
index f02f89d1ca03c8e71cb0d3b137331c0500b5c2da..8e8ecb7e98910f7cf44fd01c73a88bfaf036cd0a 100644
--- a/libgo/go/syscall/exec_freebsd.go
+++ b/libgo/go/syscall/exec_freebsd.go
@@ -57,6 +57,7 @@ func runtime_AfterForkInChild()
 // For the same reason compiler does not race instrument it.
 // The calls to RawSyscall are okay because they are assembly
 // functions that do not grow the stack.
+//
 //go:norace
 func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr *ProcAttr, sys *SysProcAttr, pipe int) (pid int, err Errno) {
 	// Declare all variables at top in case any
diff --git a/libgo/go/syscall/exec_hurd.go b/libgo/go/syscall/exec_hurd.go
index 06df513c55cb0056b54327bde18da4f2659edc26..a62b3e920e6985c0023126a43f7713444c049c3f 100644
--- a/libgo/go/syscall/exec_hurd.go
+++ b/libgo/go/syscall/exec_hurd.go
@@ -49,6 +49,7 @@ func runtime_AfterForkInChild()
 // For the same reason compiler does not race instrument it.
 // The calls to RawSyscall are okay because they are assembly
 // functions that do not grow the stack.
+//
 //go:norace
 func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr *ProcAttr, sys *SysProcAttr, pipe int) (pid int, err Errno) {
 	// Declare all variables at top in case any
diff --git a/libgo/go/syscall/exec_linux.go b/libgo/go/syscall/exec_linux.go
index 86fb8e84a66af4d2749d3fcfaf06991bdb519163..77846af89e4634a750bd969fd964bf3bc7303f31 100644
--- a/libgo/go/syscall/exec_linux.go
+++ b/libgo/go/syscall/exec_linux.go
@@ -80,6 +80,7 @@ func runtime_AfterFork()
 func runtime_AfterForkInChild()
 
 // Implemented in clone_linux.c
+//
 //go:noescape
 func rawClone(flags _C_ulong, child_stack *byte, ptid *Pid_t, ctid *Pid_t, regs unsafe.Pointer) _C_long
 
@@ -92,6 +93,7 @@ func rawClone(flags _C_ulong, child_stack *byte, ptid *Pid_t, ctid *Pid_t, regs
 // For the same reason compiler does not race instrument it.
 // The calls to RawSyscall are okay because they are assembly
 // functions that do not grow the stack.
+//
 //go:norace
 func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr *ProcAttr, sys *SysProcAttr, pipe int) (pid int, err Errno) {
 	// Set up and fork. This returns immediately in the parent or
diff --git a/libgo/go/syscall/exec_stubs.go b/libgo/go/syscall/exec_stubs.go
index c837cf7a4e2ff0e60a06ec3d8aecc71aaa701795..ce28010a50669bfe947538521ab29ebcc7ef4bf4 100644
--- a/libgo/go/syscall/exec_stubs.go
+++ b/libgo/go/syscall/exec_stubs.go
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build rtems
 // +build rtems
 
 // Stubs for fork, exec and wait.
diff --git a/libgo/go/syscall/libcall_aix.go b/libgo/go/syscall/libcall_aix.go
index 92c7f3cc23234080a7469cecfece2f385a264515..bb5db6ce525793addf0b6c319110f4fbd2a596f7 100644
--- a/libgo/go/syscall/libcall_aix.go
+++ b/libgo/go/syscall/libcall_aix.go
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build aix
 // +build aix
 
 package syscall
@@ -95,6 +96,7 @@ func PtraceDetach(pid int) (err error) { return ptrace64(_PT_DETACH, int64(pid),
 
 //sys	reboot(how int) (err error)
 //__linux_reboot(how _C_int) _C_int
+
 func Reboot(how int) (err error) {
 	return reboot(how)
 }
diff --git a/libgo/go/syscall/libcall_bsd.go b/libgo/go/syscall/libcall_bsd.go
index 1dd957c4531ecac0f887abd4d29e263a2bc63f88..5bd8e618dc2c6d3747bbaba63c6d0df6d0015bbd 100644
--- a/libgo/go/syscall/libcall_bsd.go
+++ b/libgo/go/syscall/libcall_bsd.go
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build darwin || dragonfly || freebsd || netbsd || openbsd
 // +build darwin dragonfly freebsd netbsd openbsd
 
 // BSD library calls.
@@ -53,6 +54,7 @@ func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {
 
 //sysnb	pipe2(p *[2]_C_int, flags int) (err error)
 //pipe2(p *[2]_C_int, flags _C_int) _C_int
+
 func Pipe2(p []int, flags int) (err error) {
 	if len(p) != 2 {
 		return EINVAL
diff --git a/libgo/go/syscall/libcall_bsd_largefile.go b/libgo/go/syscall/libcall_bsd_largefile.go
index c6a336cf78259c17c5baefe1e6098a9e12a67613..4271f228c422b9a3c62f75b99beac55126449394 100644
--- a/libgo/go/syscall/libcall_bsd_largefile.go
+++ b/libgo/go/syscall/libcall_bsd_largefile.go
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build (solaris && 386) || (solaris && sparc)
 // +build solaris,386 solaris,sparc
 
 package syscall
diff --git a/libgo/go/syscall/libcall_bsd_regfile.go b/libgo/go/syscall/libcall_bsd_regfile.go
index 0b9d01f2fcf50a1fe230102ab94e00c1b872533d..4f8656303c31b342c4af4558b4a5a78c64b8adb4 100644
--- a/libgo/go/syscall/libcall_bsd_regfile.go
+++ b/libgo/go/syscall/libcall_bsd_regfile.go
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build darwin || dragonfly || freebsd || openbsd || (solaris && amd64) || (solaris && sparc64)
 // +build darwin dragonfly freebsd openbsd solaris,amd64 solaris,sparc64
 
 package syscall
diff --git a/libgo/go/syscall/libcall_bsd_sendfile.go b/libgo/go/syscall/libcall_bsd_sendfile.go
index 295a1f489697df6d3e6a6c25bf1f9bdec00f67ca..8d4363998add8459cd8a903ffadc5eeb6bd7663c 100644
--- a/libgo/go/syscall/libcall_bsd_sendfile.go
+++ b/libgo/go/syscall/libcall_bsd_sendfile.go
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build darwin || dragonfly || freebsd || openbsd || solaris
 // +build darwin dragonfly freebsd openbsd solaris
 
 // BSD sendfile support.
diff --git a/libgo/go/syscall/libcall_glibc.go b/libgo/go/syscall/libcall_glibc.go
index f02112390510087fd6afdfe161a2054e85c412ee..5c1ec483c759f742dbd400dd396e1be09206ced8 100644
--- a/libgo/go/syscall/libcall_glibc.go
+++ b/libgo/go/syscall/libcall_glibc.go
@@ -20,6 +20,7 @@ import (
 
 //sys	futimesat(dirfd int, path *byte, times *[2]Timeval) (err error)
 //futimesat(dirfd _C_int, path *byte, times *[2]Timeval) _C_int
+
 func Futimesat(dirfd int, path string, tv []Timeval) (err error) {
 	if len(tv) != 2 {
 		return EINVAL
@@ -100,6 +101,7 @@ func ReadDirent(fd int, buf []byte) (n int, err error) {
 
 //sysnb	pipe2(p *[2]_C_int, flags int) (err error)
 //pipe2(p *[2]_C_int, flags _C_int) _C_int
+
 func Pipe2(p []int, flags int) (err error) {
 	if len(p) != 2 {
 		return EINVAL
@@ -113,6 +115,7 @@ func Pipe2(p []int, flags int) (err error) {
 
 //sys	sendfile(outfd int, infd int, offset *Offset_t, count int) (written int, err error)
 //sendfile64(outfd _C_int, infd _C_int, offset *Offset_t, count Size_t) Ssize_t
+
 func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
 	if race.Enabled {
 		race.ReleaseMerge(unsafe.Pointer(&ioSync))
diff --git a/libgo/go/syscall/libcall_irix.go b/libgo/go/syscall/libcall_irix.go
index 98807668d52756496b5f9b646cd8cca79e59e102..a29ddf57a682b3b7fc13157dcdedb7748b1a6512 100644
--- a/libgo/go/syscall/libcall_irix.go
+++ b/libgo/go/syscall/libcall_irix.go
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build irix
 // +build irix
 
 package syscall
diff --git a/libgo/go/syscall/libcall_linux.go b/libgo/go/syscall/libcall_linux.go
index 96974bd3269aa9f7a2f85ba68bdd318a8b6d8578..7bec2fbaeb50339009d6f2734b461d9ea343a6af 100644
--- a/libgo/go/syscall/libcall_linux.go
+++ b/libgo/go/syscall/libcall_linux.go
@@ -146,6 +146,7 @@ func PtraceDetach(pid int) (err error) { return ptrace(PTRACE_DETACH, pid, 0, 0)
 
 //sys	reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error)
 //reboot(magic1 _C_uint, magic2 _C_uint, cmd _C_int, arg *byte) _C_int
+
 func Reboot(cmd int) (err error) {
 	return reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, cmd, "")
 }
@@ -211,6 +212,7 @@ func Gettid() (tid int) {
 
 //sys	splice(rfd int, roff *_loff_t, wfd int, woff *_loff_t, len int, flags int) (n int64, err error)
 //splice(rfd _C_int, roff *_loff_t, wfd _C_int, woff *_loff_t, len Size_t, flags _C_uint) Ssize_t
+
 func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
 	var lroff _loff_t
 	var plroff *_loff_t
diff --git a/libgo/go/syscall/libcall_linux_utimesnano.go b/libgo/go/syscall/libcall_linux_utimesnano.go
index 582833812f6a31c2ee3b757dbc267feae5e2bac7..b5c2f58624bf4d214727598f984f105e76357f7f 100644
--- a/libgo/go/syscall/libcall_linux_utimesnano.go
+++ b/libgo/go/syscall/libcall_linux_utimesnano.go
@@ -13,6 +13,7 @@ import "unsafe"
 
 //sys	utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)
 //utimensat(dirfd _C_int, path *byte, times *[2]Timespec, flags _C_int) _C_int
+
 func UtimesNano(path string, ts []Timespec) (err error) {
 	if len(ts) != 2 {
 		return EINVAL
diff --git a/libgo/go/syscall/libcall_posix.go b/libgo/go/syscall/libcall_posix.go
index f37457a10224d3594e863b8dd02a5d0a5a598fe5..f8175e1b0de1af9b1857e50d52b2220d90f728ef 100644
--- a/libgo/go/syscall/libcall_posix.go
+++ b/libgo/go/syscall/libcall_posix.go
@@ -19,6 +19,7 @@ import "unsafe"
 
 //sysnb	pipe(p *[2]_C_int) (err error)
 //pipe(p *[2]_C_int) _C_int
+
 func Pipe(p []int) (err error) {
 	if len(p) != 2 {
 		return EINVAL
@@ -32,6 +33,7 @@ func Pipe(p []int) (err error) {
 
 //sys	utimes(path string, times *[2]Timeval) (err error)
 //utimes(path *byte, times *[2]Timeval) _C_int
+
 func Utimes(path string, tv []Timeval) (err error) {
 	if len(tv) != 2 {
 		return EINVAL
@@ -240,6 +242,7 @@ func FDZero(set *FdSet) {
 
 //sysnb	gettimeofday(tv *Timeval, tz *byte) (err error)
 //gettimeofday(tv *Timeval, tz *byte) _C_int
+
 func Gettimeofday(tv *Timeval) (err error) {
 	return gettimeofday(tv, nil)
 }
diff --git a/libgo/go/syscall/libcall_posix_largefile.go b/libgo/go/syscall/libcall_posix_largefile.go
index bf0f9fe50b6188cdf06235fc561f3dca8eb784ca..f90055bb29a0c969fe9c80809d49f5dc925dd790 100644
--- a/libgo/go/syscall/libcall_posix_largefile.go
+++ b/libgo/go/syscall/libcall_posix_largefile.go
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build aix || hurd || linux || (solaris && 386) || (solaris && sparc)
 // +build aix hurd linux solaris,386 solaris,sparc
 
 // POSIX library calls on systems which use the largefile interface.
diff --git a/libgo/go/syscall/libcall_posix_nonhurd.go b/libgo/go/syscall/libcall_posix_nonhurd.go
index afdca3f2f490b035e38b4c1c2b227a55e56ce0d7..9c38f78f2f7c3ad5d46409f1074bd6d286511490 100644
--- a/libgo/go/syscall/libcall_posix_nonhurd.go
+++ b/libgo/go/syscall/libcall_posix_nonhurd.go
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build !hurd
 // +build !hurd
 
 package syscall
diff --git a/libgo/go/syscall/libcall_posix_regfile.go b/libgo/go/syscall/libcall_posix_regfile.go
index 8ff721341ba5a5cabdff8a8395ce50f2d9ce66de..f999bd773e2539f24000c0f39b1c128974c0fe43 100644
--- a/libgo/go/syscall/libcall_posix_regfile.go
+++ b/libgo/go/syscall/libcall_posix_regfile.go
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build !aix && !hurd && !linux && (!solaris || !386) && (!solaris || !sparc)
 // +build !aix
 // +build !hurd
 // +build !linux
diff --git a/libgo/go/syscall/libcall_posix_utimesnano.go b/libgo/go/syscall/libcall_posix_utimesnano.go
index 84ccbf106e8ded82e75cb17ca4f8515e585287a1..374ad93575496b2a59c582855656bfc1c4ba9bf3 100644
--- a/libgo/go/syscall/libcall_posix_utimesnano.go
+++ b/libgo/go/syscall/libcall_posix_utimesnano.go
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build aix || darwin || dragonfly || freebsd || hurd || openbsd || netbsd || solaris
 // +build aix darwin dragonfly freebsd hurd openbsd netbsd solaris
 
 // General POSIX version of UtimesNano.
diff --git a/libgo/go/syscall/libcall_solaris_largefile.go b/libgo/go/syscall/libcall_solaris_largefile.go
index 757b2293ce57e12e1d32c3a1f5f642eca43f5072..1b1af088355f40381c768f3d5387fd3a7ecc26a8 100644
--- a/libgo/go/syscall/libcall_solaris_largefile.go
+++ b/libgo/go/syscall/libcall_solaris_largefile.go
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build (solaris && 386) || (solaris && sparc)
 // +build solaris,386 solaris,sparc
 
 package syscall
diff --git a/libgo/go/syscall/libcall_solaris_regfile.go b/libgo/go/syscall/libcall_solaris_regfile.go
index fa5dd8c65a8e53b48f6e3f0ad788bcbfa5874cb0..1ad7c7e8a0df99b431a823c88a0ce1cfe95b4411 100644
--- a/libgo/go/syscall/libcall_solaris_regfile.go
+++ b/libgo/go/syscall/libcall_solaris_regfile.go
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build (solaris && amd64) || (solaris && sparc64)
 // +build solaris,amd64 solaris,sparc64
 
 package syscall
diff --git a/libgo/go/syscall/libcall_uname.go b/libgo/go/syscall/libcall_uname.go
index 165b3251b6e1ff1f482d82939f16bb805cb37d16..133849f853466ee763506078a5a13c3c03ebd307 100644
--- a/libgo/go/syscall/libcall_uname.go
+++ b/libgo/go/syscall/libcall_uname.go
@@ -4,6 +4,7 @@
 
 // Build on all systems other than solaris/386.
 // 32-bit Solaris 2/x86 needs _nuname, handled in libcall_solaris_386.go.
+//go:build !386 || !solaris
 // +build !386 !solaris
 
 package syscall
diff --git a/libgo/go/syscall/libcall_wait4.go b/libgo/go/syscall/libcall_wait4.go
index 00b6874d1ad7f9351e2d93626662f049e2fcda6e..0fa6c5d73e72644e65be7ff4111e55ca2b58f74f 100644
--- a/libgo/go/syscall/libcall_wait4.go
+++ b/libgo/go/syscall/libcall_wait4.go
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build !aix
 // +build !aix
 
 // For systems with the wait4 library call.
diff --git a/libgo/go/syscall/sleep_rtems.go b/libgo/go/syscall/sleep_rtems.go
index 480c77556540d17a1d6bfc8d1b85d69fc03c21a5..1300ccd5b09ee9a777f8fbdbade1cb6c05c8901f 100644
--- a/libgo/go/syscall/sleep_rtems.go
+++ b/libgo/go/syscall/sleep_rtems.go
@@ -4,6 +4,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build rtems
 // +build rtems
 
 package syscall
diff --git a/libgo/go/syscall/sleep_select.go b/libgo/go/syscall/sleep_select.go
index bb1694fceec37d61dcedb929240eaff4f6820916..dd5d6775a2962915a2e6a5ad5d54020bc8316ac6 100644
--- a/libgo/go/syscall/sleep_select.go
+++ b/libgo/go/syscall/sleep_select.go
@@ -4,6 +4,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build !rtems
 // +build !rtems
 
 package syscall
diff --git a/libgo/go/syscall/socket_bsd.go b/libgo/go/syscall/socket_bsd.go
index 983d554849b820cb6ad76d2bca7794a36e3fb522..4dd203defe7b7b0ebc37493d4331affb46d01aa3 100644
--- a/libgo/go/syscall/socket_bsd.go
+++ b/libgo/go/syscall/socket_bsd.go
@@ -4,6 +4,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build darwin || dragonfly || freebsd || openbsd || netbsd
 // +build darwin dragonfly freebsd openbsd netbsd
 
 package syscall
diff --git a/libgo/go/syscall/socket_hurd.go b/libgo/go/syscall/socket_hurd.go
index fcb239ef1cacacc9215ad1b8f6972557fb7040bf..1005c762b8b38ca0da14e2a08fc41ae07bca56eb 100644
--- a/libgo/go/syscall/socket_hurd.go
+++ b/libgo/go/syscall/socket_hurd.go
@@ -6,6 +6,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build hurd
 // +build hurd
 
 package syscall
diff --git a/libgo/go/syscall/socket_irix.go b/libgo/go/syscall/socket_irix.go
index dc50fdd24fa39384cac2760bb2395e4adcf764b5..ec6616163c5191cd0aae070c2af5279b65beb377 100644
--- a/libgo/go/syscall/socket_irix.go
+++ b/libgo/go/syscall/socket_irix.go
@@ -4,6 +4,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build irix
 // +build irix
 
 package syscall
diff --git a/libgo/go/syscall/socket_linux_ppc64x_type.go b/libgo/go/syscall/socket_linux_ppc64x_type.go
index 96afdeb85fdf68dd31638350d0eb96b9ac202fbb..6fc75cbed408ed35a0ee735a8f34cc8b4cee2e9c 100644
--- a/libgo/go/syscall/socket_linux_ppc64x_type.go
+++ b/libgo/go/syscall/socket_linux_ppc64x_type.go
@@ -4,6 +4,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build (linux && ppc64) || (linux && ppc64le)
 // +build linux,ppc64 linux,ppc64le
 
 package syscall
diff --git a/libgo/go/syscall/socket_linux_type.go b/libgo/go/syscall/socket_linux_type.go
index 190c11cc27037e806e6ba6bee0de12fa23819bbc..af1e21831360b773e7711f2de10e67646b24a2c1 100644
--- a/libgo/go/syscall/socket_linux_type.go
+++ b/libgo/go/syscall/socket_linux_type.go
@@ -4,9 +4,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build linux
-// +build !ppc64
-// +build !ppc64le
+//go:build linux && !ppc64 && !ppc64le
+// +build linux,!ppc64,!ppc64le
 
 package syscall
 
diff --git a/libgo/go/syscall/socket_posix.go b/libgo/go/syscall/socket_posix.go
index fe835d3c43e40d1abdb74e28eb21dc760e3d34d6..27be890f4f1f58766fd3f7cf511a226e08522ccf 100644
--- a/libgo/go/syscall/socket_posix.go
+++ b/libgo/go/syscall/socket_posix.go
@@ -4,6 +4,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build !solaris
 // +build !solaris
 
 package syscall
diff --git a/libgo/go/syscall/socket_xnet.go b/libgo/go/syscall/socket_xnet.go
index c0699c44a894308f2e309d08580eea7c2e8cc7da..fe8088b950fffbb8fd636c6ce23772636aa6e31b 100644
--- a/libgo/go/syscall/socket_xnet.go
+++ b/libgo/go/syscall/socket_xnet.go
@@ -5,6 +5,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build solaris
 // +build solaris
 
 package syscall
diff --git a/libgo/go/syscall/syscall.go b/libgo/go/syscall/syscall.go
index fb41bcc9ce8fd970481fe2f452b339d873700e24..d84480d2e4e09e0711ee0e3e7f74df9310b9a715 100644
--- a/libgo/go/syscall/syscall.go
+++ b/libgo/go/syscall/syscall.go
@@ -23,7 +23,6 @@
 // That is also where updates required by new systems or versions
 // should be applied. See https://golang.org/s/go1.4-syscall for more
 // information.
-//
 package syscall
 
 import "unsafe"
diff --git a/libgo/go/syscall/syscall_errno.go b/libgo/go/syscall/syscall_errno.go
index 4df198eb2e05147e604e26f38a2ee323146a28f1..68fe49521a5e8348bd5d24d3a0748b5c3dd1e948 100644
--- a/libgo/go/syscall/syscall_errno.go
+++ b/libgo/go/syscall/syscall_errno.go
@@ -9,6 +9,7 @@ import "internal/oserror"
 // An Errno is an unsigned number describing an error condition.
 // It implements the error interface. The zero Errno is by convention
 // a non-error, so code to convert from Errno to error should use:
+//
 //	err = nil
 //	if errno != 0 {
 //		err = errno
diff --git a/libgo/go/syscall/syscall_funcs.go b/libgo/go/syscall/syscall_funcs.go
index 4b1ee3216685acc2006ee6646b041809111254a9..a906fa5a42e961cd61e6a90db230063d54a0d3cf 100644
--- a/libgo/go/syscall/syscall_funcs.go
+++ b/libgo/go/syscall/syscall_funcs.go
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build darwin || dragonfly || freebsd || hurd || linux || netbsd || openbsd || solaris
 // +build darwin dragonfly freebsd hurd linux netbsd openbsd solaris
 
 package syscall
diff --git a/libgo/go/syscall/syscall_funcs_stubs.go b/libgo/go/syscall/syscall_funcs_stubs.go
index c68ab267dd048e8447531c937605b6832f5a72bf..11f12bd9ae3c6d305bfb5f2ed3509a7eb0ffa22a 100644
--- a/libgo/go/syscall/syscall_funcs_stubs.go
+++ b/libgo/go/syscall/syscall_funcs_stubs.go
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build aix || rtems
 // +build aix rtems
 
 // These are stubs.
diff --git a/libgo/go/syscall/syscall_glibc.go b/libgo/go/syscall/syscall_glibc.go
index b40f297facb210644c6ea8eb1b4dce84bb9f6f37..b524bdfc56979ada582243336c9f1e1be0b3434b 100644
--- a/libgo/go/syscall/syscall_glibc.go
+++ b/libgo/go/syscall/syscall_glibc.go
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build hurd || linux
 // +build hurd linux
 
 package syscall
diff --git a/libgo/go/syscall/syscall_js.go b/libgo/go/syscall/syscall_js.go
index cd9549906360b1b71bea8fc34d2b7875b52ab502..c9c65229804c5df0c8501fbb4381d67dd5116c95 100644
--- a/libgo/go/syscall/syscall_js.go
+++ b/libgo/go/syscall/syscall_js.go
@@ -41,6 +41,7 @@ const PathMax = 256
 // An Errno is an unsigned number describing an error condition.
 // It implements the error interface. The zero Errno is by convention
 // a non-error, so code to convert from Errno to error should use:
+//
 //	err = nil
 //	if errno != 0 {
 //		err = errno
diff --git a/libgo/go/syscall/syscall_linux.go b/libgo/go/syscall/syscall_linux.go
index 3f3284543391acc8570a48bb0bf49bb5ec3f1762..bdf6135e09623fcaa642244084299c4d424d4ede 100644
--- a/libgo/go/syscall/syscall_linux.go
+++ b/libgo/go/syscall/syscall_linux.go
@@ -19,6 +19,7 @@ package syscall
 // AllThreadsSyscall is unaware of any threads that are launched
 // explicitly by cgo linked code, so the function always returns
 // ENOTSUP in binaries that use cgo.
+//
 //go:uintptrescapes
 func AllThreadsSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) {
 	return minus1, minus1, ENOTSUP
@@ -26,6 +27,7 @@ func AllThreadsSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) {
 
 // AllThreadsSyscall6 is like AllThreadsSyscall, but extended to six
 // arguments.
+//
 //go:uintptrescapes
 func AllThreadsSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) {
 	return minus1, minus1, ENOTSUP