]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link: fix build on plan9/amd64
authorDavid du Colombier <0intro@gmail.com>
Wed, 12 Oct 2016 12:24:39 +0000 (14:24 +0200)
committerBrad Fitzpatrick <bradfitz@golang.org>
Wed, 12 Oct 2016 13:14:46 +0000 (13:14 +0000)
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>
src/cmd/link/internal/ld/data.go

index 3b4ca5b6a775a7f5e421ee7935ada024b9c21645..e7cb2523d1e2951b570991e33b56a09ac441ecfc 100644 (file)
@@ -591,7 +591,7 @@ func relocsym(ctxt *Link, s *Symbol) {
                        // to the start of the first text section, even if there are multiple.
 
                        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 {
                                o = Symaddr(r.Sym) - int64(r.Sym.Sect.Vaddr) + r.Add
                        }