From aa74fce005b3ac35de79e799efb712f48c177256 Mon Sep 17 00:00:00 2001 From: Cherry Zhang Date: Fri, 24 Apr 2020 21:55:24 -0400 Subject: [PATCH] [dev.link] cmd/link: use new dodata on MIPS(64) and RISCV64 They also don't need to do anything for Adddynrel. So we can just enable it. Change-Id: If85fceca63a7b3cb5a09e5db224c3018060e86de Reviewed-on: https://go-review.googlesource.com/c/go/+/229993 Run-TryBot: Cherry Zhang TryBot-Result: Gobot Gobot Reviewed-by: Than McIntosh --- src/cmd/link/internal/ld/main.go | 7 +++++-- src/cmd/link/internal/ld/target.go | 12 ++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/cmd/link/internal/ld/main.go b/src/cmd/link/internal/ld/main.go index 8c86fd7236..6893fa8784 100644 --- a/src/cmd/link/internal/ld/main.go +++ b/src/cmd/link/internal/ld/main.go @@ -204,8 +204,11 @@ func Main(arch *sys.Arch, theArch Arch) { // New dodata() is currently only implemented for selected targets. switch { case ctxt.IsElf(): - if !(ctxt.IsAMD64() || ctxt.Is386() || - ctxt.IsARM() || ctxt.IsARM64() || ctxt.IsS390X()) { + switch { + case ctxt.Is386(), ctxt.IsAMD64(), ctxt.IsARM(), ctxt.IsARM64(), + ctxt.IsMIPS(), ctxt.IsMIPS64(), ctxt.IsRISCV64(), ctxt.IsS390X(): + // supported + default: *flagnewDoData = false } case ctxt.IsDarwin(): diff --git a/src/cmd/link/internal/ld/target.go b/src/cmd/link/internal/ld/target.go index 78e41f09be..102b6c5436 100644 --- a/src/cmd/link/internal/ld/target.go +++ b/src/cmd/link/internal/ld/target.go @@ -100,10 +100,22 @@ func (t *Target) IsAMD64() bool { return t.Arch.Family == sys.AMD64 } +func (t *Target) IsMIPS() bool { + return t.Arch.Family == sys.MIPS +} + +func (t *Target) IsMIPS64() bool { + return t.Arch.Family == sys.MIPS64 +} + func (t *Target) IsPPC64() bool { return t.Arch.Family == sys.PPC64 } +func (t *Target) IsRISCV64() bool { + return t.Arch.Family == sys.RISCV64 +} + func (t *Target) IsS390X() bool { return t.Arch.Family == sys.S390X } -- 2.50.0