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:
parent
f033bc1819
commit
5ca785d48d
@ -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
|
||||
|
@ -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])
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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}
|
||||
|
Loading…
Reference in New Issue
Block a user