From f3034bed728551eb3f5e1ce8d8f1e54829909a45 Mon Sep 17 00:00:00 2001 From: "Paul E. Murphy" Date: Thu, 4 May 2023 13:14:52 -0500 Subject: [PATCH] cmd/link/internal/ppc64: fix export of R_DWARFSECREF to ELF on ppc64 Today, external linking is not supported on any ppc64 ELF target, but soon openbsd will be enabled with external linking support. This relocation does not require additional endian specific fixups like most other PPC64 Go relocation types. I discovered this during an experiment to support external linking on ppc64/linux. Change-Id: I0b12b6172c7ba08df1c8cf024b4aa5e7ee76d0c4 Reviewed-on: https://go-review.googlesource.com/c/go/+/492618 Reviewed-by: Cherry Mui TryBot-Result: Gopher Robot Run-TryBot: Paul Murphy Reviewed-by: Dmitri Shuralyov --- src/cmd/link/internal/ppc64/asm.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cmd/link/internal/ppc64/asm.go b/src/cmd/link/internal/ppc64/asm.go index b77ee500fc..d14e9322cf 100644 --- a/src/cmd/link/internal/ppc64/asm.go +++ b/src/cmd/link/internal/ppc64/asm.go @@ -729,7 +729,7 @@ func xcoffreloc1(arch *sys.Arch, out *ld.OutBuf, ldr *loader.Loader, s loader.Sy func elfreloc1(ctxt *ld.Link, out *ld.OutBuf, ldr *loader.Loader, s loader.Sym, r loader.ExtReloc, ri int, sectoff int64) bool { // Beware that bit0~bit15 start from the third byte of an instruction in Big-Endian machines. rt := r.Type - if rt == objabi.R_ADDR || rt == objabi.R_POWER_TLS || rt == objabi.R_CALLPOWER { + if rt == objabi.R_ADDR || rt == objabi.R_POWER_TLS || rt == objabi.R_CALLPOWER || rt == objabi.R_DWARFSECREF { } else { if ctxt.Arch.ByteOrder == binary.BigEndian { sectoff += 2 -- 2.51.0