From c5f692021279ee4c6426130f4525d8053fffcbcf Mon Sep 17 00:00:00 2001 From: Cherry Zhang Date: Thu, 26 Mar 2020 12:54:21 -0400 Subject: [PATCH] [dev.link] cmd/link: convert textbuildid pass to new style Change-Id: Ic3a7bfc8b0290bd7bdc71e64cab74788328c41d1 Reviewed-on: https://go-review.googlesource.com/c/go/+/225657 Run-TryBot: Cherry Zhang TryBot-Result: Gobot Gobot Reviewed-by: Jeremy Faller --- src/cmd/link/internal/ld/data.go | 17 +++++++++-------- src/cmd/link/internal/ld/main.go | 6 ++++-- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/cmd/link/internal/ld/data.go b/src/cmd/link/internal/ld/data.go index 8c240f4d90..c2ccb2790b 100644 --- a/src/cmd/link/internal/ld/data.go +++ b/src/cmd/link/internal/ld/data.go @@ -2011,18 +2011,19 @@ func (ctxt *Link) textbuildid() { return } - s := ctxt.Syms.Lookup("go.buildid", 0) - s.Attr |= sym.AttrReachable + ldr := ctxt.loader + s := ldr.CreateSymForUpdate("go.buildid", 0) + s.SetReachable(true) // The \xff is invalid UTF-8, meant to make it less likely // to find one of these accidentally. data := "\xff Go build ID: " + strconv.Quote(*flagBuildid) + "\n \xff" - s.Type = sym.STEXT - s.P = []byte(data) - s.Size = int64(len(s.P)) + s.SetType(sym.STEXT) + s.SetData([]byte(data)) + s.SetSize(int64(len(data))) - ctxt.Textp = append(ctxt.Textp, nil) - copy(ctxt.Textp[1:], ctxt.Textp) - ctxt.Textp[0] = s + ctxt.Textp2 = append(ctxt.Textp2, 0) + copy(ctxt.Textp2[1:], ctxt.Textp2) + ctxt.Textp2[0] = s.Sym() } func (ctxt *Link) buildinfo() { diff --git a/src/cmd/link/internal/ld/main.go b/src/cmd/link/internal/ld/main.go index a94280dc0b..82862d274e 100644 --- a/src/cmd/link/internal/ld/main.go +++ b/src/cmd/link/internal/ld/main.go @@ -276,6 +276,10 @@ func Main(arch *sys.Arch, theArch Arch) { bench.Start("doxcoff") ctxt.doxcoff() } + + bench.Start("textbuildid") + ctxt.textbuildid() + bench.Start("loadlibfull") setupdynexp(ctxt) ctxt.loadlibfull() // XXX do it here for now @@ -289,8 +293,6 @@ func Main(arch *sys.Arch, theArch Arch) { ctxt.addexport() bench.Start("Gentext") thearch.Gentext(ctxt) // trampolines, call stubs, etc. - bench.Start("textbuildid") - ctxt.textbuildid() bench.Start("textaddress") ctxt.textaddress() bench.Start("pclntab") -- 2.48.1