]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.link] cmd/link: fix trampoline generation on AIX
authorCherry Zhang <cherryyz@google.com>
Thu, 16 Apr 2020 03:11:52 +0000 (23:11 -0400)
committerCherry Zhang <cherryyz@google.com>
Thu, 16 Apr 2020 14:36:05 +0000 (14:36 +0000)
The addend should be applied to the target symbol, not the TOC
symbol.

Change-Id: I0a14873cdcafc4ede401878882646dade9cd8e3b
Reviewed-on: https://go-review.googlesource.com/c/go/+/228479
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Than McIntosh <thanm@google.com>
src/cmd/link/internal/ppc64/asm.go

index d6b6c76f9a3ab1e96d8664a52cfbf94a269ebeec..d86738538d9cdca71e03656a6d1093995d729094 100644 (file)
@@ -733,14 +733,13 @@ func gentramp(ctxt *ld.Link, ldr *loader.Loader, tramp *loader.SymbolBuilder, ta
                toctramp := ldr.CreateSymForUpdate("TOC."+ldr.SymName(tramp.Sym()), 0)
                toctramp.SetType(sym.SXCOFFTOC)
                toctramp.SetReachable(true)
-               toctramp.AddAddr(ctxt.Arch, target)
+               toctramp.AddAddrPlus(ctxt.Arch, target, offset)
 
                r := loader.Reloc{
                        Off:  0,
                        Type: objabi.R_ADDRPOWER_TOCREL_DS,
                        Size: 8, // generates 2 relocations:  HA + LO
                        Sym:  toctramp.Sym(),
-                       Add:  offset,
                }
                tramp.AddReloc(r)
        } else {