From a15ec3895b99cd6b49576a6c1a739b46f8afeaf4 Mon Sep 17 00:00:00 2001 From: Lynn Boger Date: Tue, 13 Oct 2020 09:15:52 -0400 Subject: [PATCH] cmd/link: update plt size appropriately on ppc64 When attempting to enable internal linking with cgo on ppc64 it was discovered that the plt size was not being updated after adding entries to it, which resulted in this error: .plt: initialize bounds (16 < 24) This changes fixes that problem. Updates #21961 Change-Id: Ie17539c329f5a4802e5defd93852dcdde19ded8c Reviewed-on: https://go-review.googlesource.com/c/go/+/261837 Trust: Lynn Boger Run-TryBot: Lynn Boger TryBot-Result: Go Bot Reviewed-by: Cherry Zhang --- src/cmd/link/internal/ppc64/asm.go | 1 + 1 file changed, 1 insertion(+) diff --git a/src/cmd/link/internal/ppc64/asm.go b/src/cmd/link/internal/ppc64/asm.go index dc522e6a38..e58bf7370e 100644 --- a/src/cmd/link/internal/ppc64/asm.go +++ b/src/cmd/link/internal/ppc64/asm.go @@ -994,6 +994,7 @@ func addpltsym(ctxt *ld.Link, ldr *loader.Loader, s loader.Sym) { ldr.SetPlt(s, int32(plt.Size())) plt.Grow(plt.Size() + 8) + plt.SetSize(plt.Size() + 8) rela.AddAddrPlus(ctxt.Arch, plt.Sym(), int64(ldr.SymPlt(s))) rela.AddUint64(ctxt.Arch, ld.ELF64_R_INFO(uint32(ldr.SymDynid(s)), uint32(elf.R_PPC64_JMP_SLOT))) -- 2.50.0