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: Matthew Dempsky <mdempsky@google.com>
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) {
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) {