Commit c18fd098 authored by Josh Bleecher Snyder's avatar Josh Bleecher Snyder

cmd/internal/obj: build ctxt.Text during Sym init

Instead of constructing ctxt.Text in Flushplist,
which will be called concurrently,
do it in InitTextSym, which must be called serially.
This allows us to avoid a mutex for ctxt.Text,
and preserves the existing ordering of functions
for debug output.

Passes toolstash-check.

Updates #15756

Change-Id: I6322b4da24f9f0db7ba25e5b1b50e8d3be2deb37
Reviewed-on: https://go-review.googlesource.com/40502
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarMatthew Dempsky <mdempsky@google.com>
parent 9dbba36a
......@@ -107,9 +107,6 @@ func Flushplist(ctxt *Link, plist *Plist, newprog ProgAlloc) {
linkpcln(ctxt, s)
makeFuncDebugEntry(ctxt, plist.Curfn, s)
}
// Add to running list in ctxt.
ctxt.Text = append(ctxt.Text, text...)
}
func (ctxt *Link) InitTextSym(s *LSym, flag int) {
......@@ -135,6 +132,7 @@ func (ctxt *Link) InitTextSym(s *LSym, flag int) {
s.Set(AttrNeedCtxt, flag&NEEDCTXT != 0)
s.Set(AttrNoFrame, flag&NOFRAME != 0)
s.Type = STEXT
ctxt.Text = append(ctxt.Text, s)
}
func (ctxt *Link) Globl(s *LSym, size int64, flag int) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment