Skip to content

Commit

Permalink
[dev.link] cmd/link: avoid allsyms loop in initarray setup
Browse files Browse the repository at this point in the history
In the linker's symtab() function, avoid looping over the context's
Syms.Allsyms array to locate the entry symbol when setting up the init
array section; do an explicit ABI0 symbol lookup instead. This is a
minor efficiency tweak / code cleanup.

Fixes #20205.

Change-Id: I2ebc17a3cb2cd63e9f5052bc80f1b0ac72c960e3
Reviewed-on: https://go-review.googlesource.com/c/go/+/209838
Run-TryBot: Than McIntosh <thanm@google.com>
Reviewed-by: Jeremy Faller <jeremy@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
  • Loading branch information
thanm committed Dec 4, 2019
1 parent f7672d3 commit 29f886e
Showing 1 changed file with 5 additions and 6 deletions.
11 changes: 5 additions & 6 deletions src/cmd/link/internal/ld/symtab.go
Expand Up @@ -326,12 +326,11 @@ func textsectionmap(ctxt *Link) uint32 {
}

func (ctxt *Link) symtab() {
switch ctxt.BuildMode {
case BuildModeCArchive, BuildModeCShared:
for _, s := range ctxt.Syms.Allsym {
// Create a new entry in the .init_array section that points to the
// library initializer function.
if s.Name == *flagEntrySymbol && ctxt.HeadType != objabi.Haix {
if ctxt.HeadType != objabi.Haix {
switch ctxt.BuildMode {
case BuildModeCArchive, BuildModeCShared:
s := ctxt.Syms.ROLookup(*flagEntrySymbol, sym.SymVerABI0)
if s != nil {
addinitarrdata(ctxt, s)
}
}
Expand Down

0 comments on commit 29f886e

Please sign in to comment.