Revert "[dev.link] cmd/link: stop overwriting symbol types in loadlibfull"

This reverts CL 229994.

Reason for revert: break AIX build.

This is nice to have but isn't critical. We can revisit later.

Change-Id: Ifc56a0a4c0fb36859cf7666ab149e25e0e5d4cc0
Reviewed-on: https://go-review.googlesource.com/c/go/+/230459
Run-TryBot: Cherry Zhang <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
This commit is contained in:
Cherry Zhang 2020-04-28 14:05:20 +00:00
parent 8e7ddac52d
commit b85a03ccc2
2 changed files with 16 additions and 2 deletions

View File

@ -2824,7 +2824,7 @@ func addToTextp(ctxt *Link) {
ctxt.Textp = textp
}
func (ctxt *Link) loadlibfull() {
func (ctxt *Link) loadlibfull(symGroupType []sym.SymKind) {
// Load full symbol contents, resolve indexed references.
ctxt.loader.LoadFull(ctxt.Arch, ctxt.Syms)
@ -2890,6 +2890,20 @@ func (ctxt *Link) loadlibfull() {
}
}
// For now, overwrite symbol type with its "group" type, as dodata
// expected. Once we converted dodata, this will probably not be
// needed.
for i, t := range symGroupType {
if t != sym.Sxxx {
s := ctxt.loader.Syms[i]
if s == nil {
panic(fmt.Sprintf("nil sym for symGroupType t=%s entry %d", t.String(), i))
}
s.Type = t
}
}
symGroupType = nil
if ctxt.Debugvlog > 1 {
// loadlibfull is likely a good place to dump.
// Only dump under -v=2 and above.

View File

@ -301,7 +301,7 @@ func Main(arch *sys.Arch, theArch Arch) {
bench.Start("dodata")
ctxt.dodata2(symGroupType)
bench.Start("loadlibfull")
ctxt.loadlibfull() // XXX do it here for now
ctxt.loadlibfull(symGroupType) // XXX do it here for now
bench.Start("address")
order := ctxt.address()
bench.Start("dwarfcompress")