mirror of
https://github.com/golang/go
synced 2024-11-23 20:40:07 -07:00
cmd/link: fix size of filetab slice
The linker writes the number of file symbols (Nhistfile) to the filetab slice and then Nhistfile offsets -- which means the slice contains Nhistfile+1 entries, not just Nhistfile. I think this bug has been around since at least 1.4 but it's easier to trigger with shared libraries and a tiny binary that only has a couple of functions in it -- try go install -buildmode=shared std && go run -linkshared test/fixedbugs/issue4388.go. Change-Id: I6c0f01f1e607b9b2b96872e37ffce81281911504 Reviewed-on: https://go-review.googlesource.com/16342 Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
b2259dcef0
commit
cf125a36d5
@ -498,8 +498,8 @@ func symtab() {
|
||||
adduint(Ctxt, moduledata, uint64(pclntabNfunc+1))
|
||||
// The filetab slice
|
||||
Addaddrplus(Ctxt, moduledata, Linklookup(Ctxt, "runtime.pclntab", 0), int64(pclntabFiletabOffset))
|
||||
adduint(Ctxt, moduledata, uint64(Ctxt.Nhistfile))
|
||||
adduint(Ctxt, moduledata, uint64(Ctxt.Nhistfile))
|
||||
adduint(Ctxt, moduledata, uint64(Ctxt.Nhistfile)+1)
|
||||
adduint(Ctxt, moduledata, uint64(Ctxt.Nhistfile)+1)
|
||||
// findfunctab
|
||||
Addaddr(Ctxt, moduledata, Linklookup(Ctxt, "runtime.findfunctab", 0))
|
||||
// minpc, maxpc
|
||||
|
Loading…
Reference in New Issue
Block a user