1
0
mirror of https://github.com/golang/go synced 2024-11-22 05:24:39 -07:00

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>
This commit is contained in:
Cuong Manh Le 2024-09-04 18:45:17 +07:00 committed by Gopher Robot
parent f033bc1819
commit 5ca785d48d
4 changed files with 6 additions and 6 deletions

View File

@ -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

View File

@ -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])
}

View File

@ -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

View File

@ -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}