Commit ab4a71fc authored by Cherry Zhang's avatar Cherry Zhang

[dev.link] cmd/link: use the start of compilation unit for R_ADDRCUOFF

R_ADDRCUOFF refers to the offset from the start of the
compilation unit. Now that we could have multiple compilation
units per package, we should use the start of the compilation
unit, instead of the start of the package.

Change-Id: I3d6a3c5a5c47c9ccf88091ed05413ced826f9934
Reviewed-on: https://go-review.googlesource.com/c/go/+/204828
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarThan McIntosh <thanm@google.com>
parent 4497d7eb
......@@ -402,7 +402,7 @@ func relocsym(ctxt *Link, s *sym.Symbol) {
case objabi.R_ADDRCUOFF:
// debug_range and debug_loc elements use this relocation type to get an
// offset from the start of the compile unit.
o = Symaddr(r.Sym) + r.Add - Symaddr(r.Sym.Unit.Lib.Textp[0])
o = Symaddr(r.Sym) + r.Add - Symaddr(r.Sym.Unit.Textp[0])
// r->sym can be null when CALL $(constant) is transformed from absolute PC to relative PC call.
case objabi.R_GOTPCREL:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment