diff --git a/accounts/abi/bind/bind_test.go b/accounts/abi/bind/bind_test.go
index d37288832..1302c10dc 100644
--- a/accounts/abi/bind/bind_test.go
+++ b/accounts/abi/bind/bind_test.go
@@ -15,7 +15,6 @@
// along with the go-ethereum library. If not, see .
//go:build integration
-// +build integration
package bind
diff --git a/common/fdlimit/fdlimit_bsd.go b/common/fdlimit/fdlimit_bsd.go
index a3a6902c0..ede995516 100644
--- a/common/fdlimit/fdlimit_bsd.go
+++ b/common/fdlimit/fdlimit_bsd.go
@@ -15,7 +15,6 @@
// along with the go-ethereum library. If not, see .
//go:build freebsd || dragonfly
-// +build freebsd dragonfly
package fdlimit
diff --git a/common/fdlimit/fdlimit_unix.go b/common/fdlimit/fdlimit_unix.go
index a1f388ebb..704ca27f2 100644
--- a/common/fdlimit/fdlimit_unix.go
+++ b/common/fdlimit/fdlimit_unix.go
@@ -15,7 +15,6 @@
// along with the go-ethereum library. If not, see .
//go:build linux || netbsd || openbsd || solaris
-// +build linux netbsd openbsd solaris
package fdlimit
diff --git a/core/mkalloc.go b/core/mkalloc.go
index 8218838da..3f72c78b1 100644
--- a/core/mkalloc.go
+++ b/core/mkalloc.go
@@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see .
-// +build none
+//go:build none
/*
diff --git a/core/state/intra_block_state_test.go b/core/state/intra_block_state_test.go
index e170c4562..e06c9a5f9 100644
--- a/core/state/intra_block_state_test.go
+++ b/core/state/intra_block_state_test.go
@@ -15,7 +15,6 @@
// along with the go-ethereum library. If not, see .
//go:build integration
-// +build integration
package state
diff --git a/core/types/receipt_codecgen_gen.go b/core/types/receipt_codecgen_gen.go
index 8bff99a1a..91e54d8de 100644
--- a/core/types/receipt_codecgen_gen.go
+++ b/core/types/receipt_codecgen_gen.go
@@ -1,5 +1,4 @@
//go:build go1.6
-// +build go1.6
// Code generated by codecgen - DO NOT EDIT.
diff --git a/crypto/blake2b/blake2bAVX2_amd64.go b/crypto/blake2b/blake2bAVX2_amd64.go
index 3a85d0e73..bfeee2be9 100644
--- a/crypto/blake2b/blake2bAVX2_amd64.go
+++ b/crypto/blake2b/blake2bAVX2_amd64.go
@@ -3,7 +3,6 @@
// license that can be found in the LICENSE file.
//go:build go1.7 && amd64 && !gccgo && !appengine
-// +build go1.7,amd64,!gccgo,!appengine
package blake2b
diff --git a/crypto/blake2b/blake2b_amd64.go b/crypto/blake2b/blake2b_amd64.go
index 4dbe90da8..7f933ecb9 100644
--- a/crypto/blake2b/blake2b_amd64.go
+++ b/crypto/blake2b/blake2b_amd64.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// +build !go1.7,amd64,!gccgo,!appengine
+//go:build !go1.7 && amd64 && !gccgo && !appengine
package blake2b
diff --git a/crypto/blake2b/blake2b_f_fuzz.go b/crypto/blake2b/blake2b_f_fuzz.go
index ab7334280..5b7eb678d 100644
--- a/crypto/blake2b/blake2b_f_fuzz.go
+++ b/crypto/blake2b/blake2b_f_fuzz.go
@@ -1,4 +1,4 @@
-// +build gofuzz
+//go:build gofuzz
package blake2b
diff --git a/crypto/blake2b/blake2b_ref.go b/crypto/blake2b/blake2b_ref.go
index 095c71a64..682544100 100644
--- a/crypto/blake2b/blake2b_ref.go
+++ b/crypto/blake2b/blake2b_ref.go
@@ -3,7 +3,6 @@
// license that can be found in the LICENSE file.
//go:build !amd64 || appengine || gccgo
-// +build !amd64 appengine gccgo
package blake2b
diff --git a/crypto/blake2b/register.go b/crypto/blake2b/register.go
index 9d8633963..d9fcac3a4 100644
--- a/crypto/blake2b/register.go
+++ b/crypto/blake2b/register.go
@@ -3,7 +3,6 @@
// license that can be found in the LICENSE file.
//go:build go1.9
-// +build go1.9
package blake2b
diff --git a/crypto/bls12381/arithmetic_decl.go b/crypto/bls12381/arithmetic_decl.go
index ec0b21e80..aba0233c4 100644
--- a/crypto/bls12381/arithmetic_decl.go
+++ b/crypto/bls12381/arithmetic_decl.go
@@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see .
-// +build amd64,blsasm amd64,blsadx
+//go:build (amd64 && blsasm) || (amd64 && blsadx)
package bls12381
diff --git a/crypto/bls12381/arithmetic_fallback.go b/crypto/bls12381/arithmetic_fallback.go
index 91cabf4f3..b7774bebc 100644
--- a/crypto/bls12381/arithmetic_fallback.go
+++ b/crypto/bls12381/arithmetic_fallback.go
@@ -31,7 +31,7 @@
// Package bls (generated by goff) contains field arithmetics operations
-// +build !amd64 !blsasm,!blsadx
+//go:build !amd64 || (!blsasm && !blsadx)
package bls12381
diff --git a/crypto/bls12381/arithmetic_x86_adx.go b/crypto/bls12381/arithmetic_x86_adx.go
index 9c30741e6..00ef35b33 100644
--- a/crypto/bls12381/arithmetic_x86_adx.go
+++ b/crypto/bls12381/arithmetic_x86_adx.go
@@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see .
-// +build amd64,blsadx
+//go:build amd64 && blsadx
package bls12381
diff --git a/crypto/bls12381/arithmetic_x86_noadx.go b/crypto/bls12381/arithmetic_x86_noadx.go
index eaac4b45d..5a0fdf08f 100644
--- a/crypto/bls12381/arithmetic_x86_noadx.go
+++ b/crypto/bls12381/arithmetic_x86_noadx.go
@@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see .
-// +build amd64,blsasm
+//go:build amd64 && blsasm
package bls12381
diff --git a/crypto/bn256/bn256_fast.go b/crypto/bn256/bn256_fast.go
index e8b9a4adf..6d27fffd8 100644
--- a/crypto/bn256/bn256_fast.go
+++ b/crypto/bn256/bn256_fast.go
@@ -3,7 +3,6 @@
// in the LICENSE file.
//go:build amd64 || arm64
-// +build amd64 arm64
// Package bn256 implements the Optimal Ate pairing over a 256-bit Barreto-Naehrig curve.
package bn256
diff --git a/crypto/bn256/bn256_slow.go b/crypto/bn256/bn256_slow.go
index 32f4fca92..e8ed4971a 100644
--- a/crypto/bn256/bn256_slow.go
+++ b/crypto/bn256/bn256_slow.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be found
// in the LICENSE file.
-// +build !amd64,!arm64
+//go:build !amd64 && !arm64
// Package bn256 implements the Optimal Ate pairing over a 256-bit Barreto-Naehrig curve.
package bn256
diff --git a/crypto/bn256/cloudflare/gfp_decl.go b/crypto/bn256/cloudflare/gfp_decl.go
index 652089de2..072e32b08 100644
--- a/crypto/bn256/cloudflare/gfp_decl.go
+++ b/crypto/bn256/cloudflare/gfp_decl.go
@@ -1,5 +1,4 @@
//go:build (amd64 && !generic) || (arm64 && !generic)
-// +build amd64,!generic arm64,!generic
package bn256
diff --git a/crypto/bn256/cloudflare/gfp_generic.go b/crypto/bn256/cloudflare/gfp_generic.go
index 8e6be9596..944208c67 100644
--- a/crypto/bn256/cloudflare/gfp_generic.go
+++ b/crypto/bn256/cloudflare/gfp_generic.go
@@ -1,4 +1,4 @@
-// +build !amd64,!arm64 generic
+//go:build (!amd64 && !arm64) || generic
package bn256
diff --git a/crypto/signature_cgo.go b/crypto/signature_cgo.go
index 3b7d0fd33..0ea11872a 100644
--- a/crypto/signature_cgo.go
+++ b/crypto/signature_cgo.go
@@ -15,7 +15,6 @@
// along with the go-ethereum library. If not, see .
//go:build !nacl && !js && cgo && !gofuzz
-// +build !nacl,!js,cgo,!gofuzz
package crypto
diff --git a/crypto/signature_nocgo.go b/crypto/signature_nocgo.go
index 8d38fd8d5..338ee4b24 100644
--- a/crypto/signature_nocgo.go
+++ b/crypto/signature_nocgo.go
@@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see .
-// +build nacl js !cgo gofuzz
+//go:build nacl || js || !cgo || gofuzz
package crypto
diff --git a/ethdb/olddb/database_test.go b/ethdb/olddb/database_test.go
index de4987018..ef34aa8ef 100644
--- a/ethdb/olddb/database_test.go
+++ b/ethdb/olddb/database_test.go
@@ -15,7 +15,6 @@
// along with the go-ethereum library. If not, see .
//go:build !js
-// +build !js
package olddb
diff --git a/internal/debug/loudpanic.go b/internal/debug/loudpanic.go
index 86e6bc88f..3412d872e 100644
--- a/internal/debug/loudpanic.go
+++ b/internal/debug/loudpanic.go
@@ -15,7 +15,6 @@
// along with the go-ethereum library. If not, see .
//go:build go1.6
-// +build go1.6
package debug
diff --git a/internal/debug/loudpanic_fallback.go b/internal/debug/loudpanic_fallback.go
index 4ce4985da..a909f9dff 100644
--- a/internal/debug/loudpanic_fallback.go
+++ b/internal/debug/loudpanic_fallback.go
@@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see .
-// +build !go1.6
+//go:build !go1.6
package debug
diff --git a/internal/debug/signal.go b/internal/debug/signal.go
index a8380d59e..ed1e7bd28 100644
--- a/internal/debug/signal.go
+++ b/internal/debug/signal.go
@@ -1,5 +1,4 @@
//go:build !windows
-// +build !windows
package debug
diff --git a/internal/debug/signal_windows.go b/internal/debug/signal_windows.go
index 78f6700fd..ea731be74 100644
--- a/internal/debug/signal_windows.go
+++ b/internal/debug/signal_windows.go
@@ -1,4 +1,4 @@
-// +build windows
+//go:build windows
package debug
diff --git a/internal/debug/trace.go b/internal/debug/trace.go
index 367b5727e..b9902e71c 100644
--- a/internal/debug/trace.go
+++ b/internal/debug/trace.go
@@ -15,7 +15,6 @@
// along with the go-ethereum library. If not, see .
//go:build go1.5
-// +build go1.5
package debug
diff --git a/internal/debug/trace_fallback.go b/internal/debug/trace_fallback.go
index 4118ff408..ffe506ebf 100644
--- a/internal/debug/trace_fallback.go
+++ b/internal/debug/trace_fallback.go
@@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see .
-//+build !go1.5
+//go:build !go1.5
// no-op implementation of tracing methods for Go < 1.5.
diff --git a/p2p/dial_integration_test.go b/p2p/dial_integration_test.go
index d08420093..cee24df05 100644
--- a/p2p/dial_integration_test.go
+++ b/p2p/dial_integration_test.go
@@ -1,5 +1,4 @@
//go:build integration
-// +build integration
package p2p
diff --git a/p2p/discover/table_integration_test.go b/p2p/discover/table_integration_test.go
index 294cb7828..241350358 100644
--- a/p2p/discover/table_integration_test.go
+++ b/p2p/discover/table_integration_test.go
@@ -1,5 +1,4 @@
//go:build integration
-// +build integration
package discover
diff --git a/p2p/discover/v4_lookup_test.go b/p2p/discover/v4_lookup_test.go
index 65df058d6..bd1fb591c 100644
--- a/p2p/discover/v4_lookup_test.go
+++ b/p2p/discover/v4_lookup_test.go
@@ -15,7 +15,6 @@
// along with the go-ethereum library. If not, see .
//go:build integration
-// +build integration
package discover
diff --git a/p2p/discover/v5_lookup_test.go b/p2p/discover/v5_lookup_test.go
index b168ad94e..f8b26aaa0 100644
--- a/p2p/discover/v5_lookup_test.go
+++ b/p2p/discover/v5_lookup_test.go
@@ -1,5 +1,4 @@
//go:build integration
-// +build integration
package discover
diff --git a/p2p/discover/v5_udp_integration_test.go b/p2p/discover/v5_udp_integration_test.go
index b7a250bab..58d432bbc 100644
--- a/p2p/discover/v5_udp_integration_test.go
+++ b/p2p/discover/v5_udp_integration_test.go
@@ -1,5 +1,4 @@
//go:build integration
-// +build integration
package discover
diff --git a/p2p/enode/iter_integration_test.go b/p2p/enode/iter_integration_test.go
index dea8705e9..939efcaba 100644
--- a/p2p/enode/iter_integration_test.go
+++ b/p2p/enode/iter_integration_test.go
@@ -1,5 +1,4 @@
//go:build integration
-// +build integration
package enode
diff --git a/p2p/nat/natupnp_test.go b/p2p/nat/natupnp_test.go
index 245201a10..e468f910e 100644
--- a/p2p/nat/natupnp_test.go
+++ b/p2p/nat/natupnp_test.go
@@ -15,7 +15,6 @@
// along with the go-ethereum library. If not, see .
//go:build integration
-// +build integration
package nat
diff --git a/p2p/netutil/toobig_notwindows.go b/p2p/netutil/toobig_notwindows.go
index f9f936ae5..a9c5601c7 100644
--- a/p2p/netutil/toobig_notwindows.go
+++ b/p2p/netutil/toobig_notwindows.go
@@ -15,7 +15,6 @@
// along with the go-ethereum library. If not, see .
//go:build !windows
-// +build !windows
package netutil
diff --git a/p2p/netutil/toobig_windows.go b/p2p/netutil/toobig_windows.go
index dfbb6d44f..13a1ace05 100644
--- a/p2p/netutil/toobig_windows.go
+++ b/p2p/netutil/toobig_windows.go
@@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see .
-//+build windows
+//go:build windows
package netutil
diff --git a/rules.go b/rules.go
index 80485ab1e..f947bc0eb 100644
--- a/rules.go
+++ b/rules.go
@@ -1,5 +1,4 @@
//go:build gorules
-// +build gorules
package gorules
diff --git a/tests/block_test.go b/tests/block_test.go
index 68d920114..20e743ef8 100644
--- a/tests/block_test.go
+++ b/tests/block_test.go
@@ -15,7 +15,6 @@
// along with the go-ethereum library. If not, see .
//go:build integration
-// +build integration
package tests
diff --git a/tests/difficulty_test.go b/tests/difficulty_test.go
index 688364f6a..cb4202bbb 100644
--- a/tests/difficulty_test.go
+++ b/tests/difficulty_test.go
@@ -15,7 +15,6 @@
// along with the go-ethereum library. If not, see .
//go:build integration
-// +build integration
package tests
diff --git a/tests/fuzzers/bls12381/bls12381_fuzz.go b/tests/fuzzers/bls12381/bls12381_fuzz.go
index 623699d7c..bba317a23 100644
--- a/tests/fuzzers/bls12381/bls12381_fuzz.go
+++ b/tests/fuzzers/bls12381/bls12381_fuzz.go
@@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see .
-// +build gofuzz
+//go:build gofuzz
package bls
diff --git a/tests/init_test.go b/tests/init_test.go
index 3d3141bcc..c5667ea4b 100644
--- a/tests/init_test.go
+++ b/tests/init_test.go
@@ -15,7 +15,6 @@
// along with the go-ethereum library. If not, see .
//go:build integration
-// +build integration
package tests
diff --git a/tests/rlp_test.go b/tests/rlp_test.go
index dbca73efc..ec0ebe08d 100644
--- a/tests/rlp_test.go
+++ b/tests/rlp_test.go
@@ -15,7 +15,6 @@
// along with the go-ethereum library. If not, see .
//go:build integration
-// +build integration
package tests
diff --git a/tests/state_test.go b/tests/state_test.go
index cc1c13c4e..51811bf1a 100644
--- a/tests/state_test.go
+++ b/tests/state_test.go
@@ -15,7 +15,6 @@
// along with the go-ethereum library. If not, see .
//go:build integration
-// +build integration
package tests
diff --git a/tests/transaction_test.go b/tests/transaction_test.go
index 5e6b77dae..864839d29 100644
--- a/tests/transaction_test.go
+++ b/tests/transaction_test.go
@@ -15,7 +15,6 @@
// along with the go-ethereum library. If not, see .
//go:build integration
-// +build integration
package tests
diff --git a/tools.go b/tools.go
index 0280a24c9..7a7ba16ab 100644
--- a/tools.go
+++ b/tools.go
@@ -1,5 +1,4 @@
//go:build tools
-// +build tools
package tools
diff --git a/turbo/rlphacks/bytes_test.go b/turbo/rlphacks/bytes_test.go
index 94734cb56..af2f825cb 100644
--- a/turbo/rlphacks/bytes_test.go
+++ b/turbo/rlphacks/bytes_test.go
@@ -1,5 +1,4 @@
//go:build integration
-// +build integration
package rlphacks