From: Cherry Zhang Date: Wed, 9 Oct 2019 19:53:03 +0000 (-0400) Subject: [dev.link] cmd/internal/goobj: replace `"".` with package prefix in newobj mode X-Git-Tag: go1.14beta1~292^2^2~66 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=0108b54a3d6d53d13bc5cb935e3a79121b7ee49e;p=gostls13.git [dev.link] cmd/internal/goobj: replace `"".` with package prefix in newobj mode This is the behavior of the old code. Do the same. Change-Id: I3d393d754dcbdb7e76a577252a94214d2e316651 Reviewed-on: https://go-review.googlesource.com/c/go/+/200159 Run-TryBot: Cherry Zhang TryBot-Result: Gobot Gobot Reviewed-by: Than McIntosh --- diff --git a/src/cmd/internal/goobj/readnew.go b/src/cmd/internal/goobj/readnew.go index 442784de3a..b4b84692d5 100644 --- a/src/cmd/internal/goobj/readnew.go +++ b/src/cmd/internal/goobj/readnew.go @@ -8,6 +8,7 @@ import ( "cmd/internal/goobj2" "cmd/internal/objabi" "fmt" + "strings" ) // Read object file in new format. For now we still fill @@ -67,7 +68,11 @@ func (r *objReader) readNew() { if osym.Name == "" { continue // not a real symbol } - symID := SymID{Name: osym.Name, Version: abiToVer(osym.ABI)} + // In a symbol name in an object file, "". denotes the + // prefix for the package in which the object file has been found. + // Expand it. + name := strings.ReplaceAll(osym.Name, `"".`, r.pkgprefix) + symID := SymID{Name: name, Version: abiToVer(osym.ABI)} r.p.SymRefs = append(r.p.SymRefs, symID) if i >= ndef {