mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
[dev.link] cmd/link: add Target and ArchSyms to arch functions
Change-Id: Iab9e5bd8115e81a10067e44397cbe34addda1b63 Reviewed-on: https://go-review.googlesource.com/c/go/+/222064 Run-TryBot: Jeremy Faller <jeremy@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Than McIntosh <thanm@google.com>
This commit is contained in:
parent
a3873ab49f
commit
cb4c84bd9a
12 changed files with 32 additions and 30 deletions
|
|
@ -665,13 +665,15 @@ func (ctxt *Link) windynrelocsyms() {
|
|||
}
|
||||
|
||||
func dynrelocsym(ctxt *Link, s *sym.Symbol) {
|
||||
target := &ctxt.Target
|
||||
syms := &ctxt.ArchSyms
|
||||
for ri := range s.R {
|
||||
r := &s.R[ri]
|
||||
if ctxt.BuildMode == BuildModePIE && ctxt.LinkMode == LinkInternal {
|
||||
// It's expected that some relocations will be done
|
||||
// later by relocsym (R_TLS_LE, R_ADDROFF), so
|
||||
// don't worry if Adddynrel returns false.
|
||||
thearch.Adddynrel(ctxt, s, r)
|
||||
thearch.Adddynrel(ctxt, target, syms, s, r)
|
||||
continue
|
||||
}
|
||||
|
||||
|
|
@ -679,7 +681,7 @@ func dynrelocsym(ctxt *Link, s *sym.Symbol) {
|
|||
if r.Sym != nil && !r.Sym.Attr.Reachable() {
|
||||
Errorf(s, "dynamic relocation to unreachable symbol %s", r.Sym.Name)
|
||||
}
|
||||
if !thearch.Adddynrel(ctxt, s, r) {
|
||||
if !thearch.Adddynrel(ctxt, target, syms, s, r) {
|
||||
Errorf(s, "unsupported dynamic relocation for symbol %s (type=%d (%s) stype=%d (%s))", r.Sym.Name, r.Type, sym.RelocName(ctxt.Arch, r.Type), r.Sym.Type, r.Sym.Type)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue