diff options
| author | Cuong Manh Le <cuong.manhle.vn@gmail.com> | 2024-09-04 18:45:17 +0700 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2024-09-04 18:27:07 +0000 |
| commit | 5ca785d48d4648bdd771d95c5a99e0ce799dcfd3 (patch) | |
| tree | f3d70821eceb7bf68c8740b3c7e75c8aa60f768a /src/cmd | |
| parent | f033bc1819d6f4830216b969d8e88aa5cb3dc82a (diff) | |
| download | go-5ca785d48d4648bdd771d95c5a99e0ce799dcfd3.tar.xz | |
cmd: use 16 bytes hash when possible
CL 402595 changes all usages of 16 bytes hash to 32 bytes hash by using
notsha256.
However, since CL 454836, notsha256 is not necessary anymore, so this CL
reverts those changes to 16 bytes hash using cmd/internal/hash package.
Updates #51940
Updates #64751
Change-Id: Ic015468ca4a49d0c3b1fb9fdbed93fddef3c838f
Reviewed-on: https://go-review.googlesource.com/c/go/+/610598
Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Diffstat (limited to 'src/cmd')
| -rw-r--r-- | src/cmd/cgo/main.go | 4 | ||||
| -rw-r--r-- | src/cmd/compile/internal/types/fmt.go | 4 | ||||
| -rw-r--r-- | src/cmd/internal/obj/sym.go | 2 | ||||
| -rw-r--r-- | src/cmd/objdump/objdump_test.go | 2 |
4 files changed, 6 insertions, 6 deletions
diff --git a/src/cmd/cgo/main.go b/src/cmd/cgo/main.go index 946245bbe7..7a78cd270d 100644 --- a/src/cmd/cgo/main.go +++ b/src/cmd/cgo/main.go @@ -388,8 +388,8 @@ func main() { // we use to coordinate between gcc and ourselves. // We already put _cgo_ at the beginning, so the main // concern is other cgo wrappers for the same functions. - // Use the beginning of the 32 bytes hash of the input to disambiguate. - h := hash.New32() + // Use the beginning of the 16 bytes hash of the input to disambiguate. + h := hash.New16() io.WriteString(h, *importPath) var once sync.Once var wg sync.WaitGroup diff --git a/src/cmd/compile/internal/types/fmt.go b/src/cmd/compile/internal/types/fmt.go index f316a23b90..96c63528ec 100644 --- a/src/cmd/compile/internal/types/fmt.go +++ b/src/cmd/compile/internal/types/fmt.go @@ -644,7 +644,7 @@ func SplitVargenSuffix(name string) (base, suffix string) { func TypeHash(t *Type) uint32 { p := t.LinkString() - // Using 32 bytes hash is overkill, but reduces accidental collisions. - h := hash.Sum32([]byte(p)) + // Using 16 bytes hash is overkill, but reduces accidental collisions. + h := hash.Sum16([]byte(p)) return binary.LittleEndian.Uint32(h[:4]) } diff --git a/src/cmd/internal/obj/sym.go b/src/cmd/internal/obj/sym.go index 0fd0eb7f0f..ac43a812b9 100644 --- a/src/cmd/internal/obj/sym.go +++ b/src/cmd/internal/obj/sym.go @@ -207,7 +207,7 @@ func (ctxt *Link) Int128Sym(hi, lo int64) *LSym { // GCLocalsSym generates a content-addressable sym containing data. func (ctxt *Link) GCLocalsSym(data []byte) *LSym { - sum := hash.Sum32(data) + sum := hash.Sum16(data) str := base64.StdEncoding.EncodeToString(sum[:16]) return ctxt.LookupInit(fmt.Sprintf("gclocals·%s", str), func(lsym *LSym) { lsym.P = data diff --git a/src/cmd/objdump/objdump_test.go b/src/cmd/objdump/objdump_test.go index 103517641e..e78f2d3f96 100644 --- a/src/cmd/objdump/objdump_test.go +++ b/src/cmd/objdump/objdump_test.go @@ -126,7 +126,7 @@ func testDisasm(t *testing.T, srcfname string, printCode bool, printGnuAsm bool, goarch = f[1] } - hash := hash.Sum32([]byte(fmt.Sprintf("%v-%v-%v-%v", srcfname, flags, printCode, printGnuAsm))) + hash := hash.Sum16([]byte(fmt.Sprintf("%v-%v-%v-%v", srcfname, flags, printCode, printGnuAsm))) tmp := t.TempDir() hello := filepath.Join(tmp, fmt.Sprintf("hello-%x.exe", hash)) args := []string{"build", "-o", hello} |
