Skip to content

Commit

Permalink
cmd: use 20 bytes hash when possible
Browse files Browse the repository at this point in the history
CL 402595 changes all usages of 20 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 20 bytes hash using cmd/internal/hash package.

Updates #51940
Updates #64751

Change-Id: Icb08d5a0d8032a3c4d050ff7b2298d31c483b88b
Reviewed-on: https://go-review.googlesource.com/c/go/+/610597
Reviewed-by: Dmitri Shuralyov <[email protected]>
Auto-Submit: Cuong Manh Le <[email protected]>
Reviewed-by: Keith Randall <[email protected]>
LUCI-TryBot-Result: Go LUCI <[email protected]>
Reviewed-by: Keith Randall <[email protected]>
  • Loading branch information
cuonglm authored and gopherbot committed Sep 4, 2024
1 parent 4fd73e5 commit f033bc1
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 6 deletions.
2 changes: 1 addition & 1 deletion src/cmd/compile/internal/liveness/plive.go
Original file line number Diff line number Diff line change
Expand Up @@ -979,7 +979,7 @@ func (lv *liveness) enableClobber() {
// Clobber only functions where the hash of the function name matches a pattern.
// Useful for binary searching for a miscompiled function.
hstr := ""
for _, b := range hash.Sum32([]byte(lv.f.Name)) {
for _, b := range hash.Sum20([]byte(lv.f.Name)) {
hstr += fmt.Sprintf("%08b", b)
}
if !strings.HasSuffix(hstr, h) {
Expand Down
2 changes: 1 addition & 1 deletion src/cmd/internal/obj/objfile.go
Original file line number Diff line number Diff line change
Expand Up @@ -494,7 +494,7 @@ func contentHash64(s *LSym) goobj.Hash64Type {
// For now, we assume there is no circular dependencies among
// hashed symbols.
func (w *writer) contentHash(s *LSym) goobj.HashType {
h := hash.New32()
h := hash.New20()
var tmp [14]byte

// Include the size of the symbol in the hash.
Expand Down
4 changes: 2 additions & 2 deletions src/cmd/link/internal/ld/elf.go
Original file line number Diff line number Diff line change
Expand Up @@ -1677,11 +1677,11 @@ func (ctxt *Link) doelf() {
sb.SetType(sym.SRODATA)
ldr.SetAttrSpecial(s, true)
sb.SetReachable(true)
sb.SetSize(hash.Size32)
sb.SetSize(hash.Size20)
slices.SortFunc(ctxt.Library, func(a, b *sym.Library) int {
return strings.Compare(a.Pkg, b.Pkg)
})
h := hash.New32()
h := hash.New20()
for _, l := range ctxt.Library {
h.Write(l.Fingerprint[:])
}
Expand Down
4 changes: 2 additions & 2 deletions src/cmd/link/internal/ld/lib.go
Original file line number Diff line number Diff line change
Expand Up @@ -1012,7 +1012,7 @@ func typeSymbolMangle(name string) string {
return name
}
if isType {
hb := hash.Sum32([]byte(name[5:]))
hb := hash.Sum20([]byte(name[5:]))
prefix := "type:"
if name[5] == '.' {
prefix = "type:."
Expand All @@ -1025,7 +1025,7 @@ func typeSymbolMangle(name string) string {
if j == -1 || j <= i {
j = len(name)
}
hb := hash.Sum32([]byte(name[i+1 : j]))
hb := hash.Sum20([]byte(name[i+1 : j]))
return name[:i+1] + base64.StdEncoding.EncodeToString(hb[:6]) + name[j:]
}

Expand Down

0 comments on commit f033bc1

Please sign in to comment.