cmd/link: fix build on plan9/amd64

Support for multiple text sections was added in CL 27790.
However, this change broke the build on plan9/amd64.

In relocsym, the R_ADDROFF relocation was changed to
use offsets relative to the start of the first text
section. However, Segtext.Vaddr is the address of
the text segment, while we expect to start from
the first section (text.runtime) of the text segment.

Fixes #17411.

Change-Id: I86bbcbda81cea735b0ecf156eab2e6e5d63acce3
Reviewed-on: https://go-review.googlesource.com/30911
Run-TryBot: David du Colombier <0intro@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
David du Colombier 2016-10-12 14:24:39 +02:00 committed by Brad Fitzpatrick
parent 6c517df4da
commit 29c600bba1

View file

@ -591,7 +591,7 @@ func relocsym(ctxt *Link, s *Symbol) {
// to the start of the first text section, even if there are multiple. // to the start of the first text section, even if there are multiple.
if r.Sym.Sect.Name == ".text" { if r.Sym.Sect.Name == ".text" {
o = Symaddr(r.Sym) - int64(Segtext.Vaddr) + r.Add o = Symaddr(r.Sym) - int64(Segtext.Sect.Vaddr) + r.Add
} else { } else {
o = Symaddr(r.Sym) - int64(r.Sym.Sect.Vaddr) + r.Add o = Symaddr(r.Sym) - int64(r.Sym.Sect.Vaddr) + r.Add
} }