From: Cherry Zhang Date: Sat, 25 Apr 2020 01:55:24 +0000 (-0400) Subject: [dev.link] cmd/link: use new dodata on MIPS(64) and RISCV64 X-Git-Tag: go1.15beta1~270^2^2~21 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=aa74fce005b3ac35de79e799efb712f48c177256;p=gostls13.git [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 --- 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 }