mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/link: collect itablinks as a slice in moduledata
See #14874 This change tells the linker to collect all the itablink symbols and collect them so that moduledata can have a slice of all compiler generated itabs. The logic is shamelessly adapted from what is done with typelink symbols. Change-Id: Ie93b59acf0fcba908a876d506afbf796f222dbac Reviewed-on: https://go-review.googlesource.com/20889 Reviewed-by: Keith Randall <khr@golang.org>
This commit is contained in:
parent
f00bbd5f81
commit
79688ca58f
9 changed files with 52 additions and 5 deletions
|
|
@ -107,10 +107,11 @@ func deadcode(ctxt *Link) {
|
|||
}
|
||||
|
||||
if Buildmode != BuildmodeShared {
|
||||
// Keep a typelink if the symbol it points at is being kept.
|
||||
// (When BuildmodeShared, always keep typelinks.)
|
||||
// Keep a typelink or itablink if the symbol it points at is being kept.
|
||||
// (When BuildmodeShared, always keep typelinks and itablinks.)
|
||||
for _, s := range ctxt.Allsym {
|
||||
if strings.HasPrefix(s.Name, "go.typelink.") {
|
||||
if strings.HasPrefix(s.Name, "go.typelink.") ||
|
||||
strings.HasPrefix(s.Name, "go.itablink.") {
|
||||
s.Attr.Set(AttrReachable, len(s.R) == 1 && s.R[0].Sym.Attr.Reachable())
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue