[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 <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Jeremy Faller <jeremy@golang.org>
diff --git a/src/cmd/link/internal/ld/data.go b/src/cmd/link/internal/ld/data.go
index 8c240f4..c2ccb27 100644
--- a/src/cmd/link/internal/ld/data.go
+++ b/src/cmd/link/internal/ld/data.go
@@ -2011,18 +2011,19 @@
 		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 a94280d..82862d2 100644
--- a/src/cmd/link/internal/ld/main.go
+++ b/src/cmd/link/internal/ld/main.go
@@ -276,6 +276,10 @@
 		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 @@
 	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")