]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link: improve error for missing SDYNIMPORT support on mips/mips64
authorThan McIntosh <thanm@google.com>
Thu, 9 Feb 2023 14:08:44 +0000 (09:08 -0500)
committerThan McIntosh <thanm@google.com>
Fri, 10 Feb 2023 14:29:07 +0000 (14:29 +0000)
Issue an error (instead of crashing) when encountering a symbol that
requires dynamic relocations on mips/mips64. The dynimport support is
in progress, but is not done yet, so rather than crashing, print a
message indicating that the feature is not yet implemented and exit.

Fixes #58240.

Change-Id: I9ad64c89e4f7b4b180964b35ad1d72d375f2df7f
Reviewed-on: https://go-review.googlesource.com/c/go/+/466895
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Joel Sing <joel@sing.id.au>
Reviewed-by: David Chase <drchase@google.com>
Run-TryBot: Than McIntosh <thanm@google.com>

src/cmd/link/internal/mips/obj.go
src/cmd/link/internal/mips64/obj.go

index 0139d541df665f92d045e19c40ad9934e64bf7de..1caddac6be03a4584667859f958b1de45ebd5632 100644 (file)
@@ -34,6 +34,7 @@ import (
        "cmd/internal/objabi"
        "cmd/internal/sys"
        "cmd/link/internal/ld"
+       "cmd/link/internal/loader"
        "internal/buildcfg"
 )
 
@@ -52,6 +53,7 @@ func Init() (*sys.Arch, ld.Arch) {
                Dwarfregsp: DWARFREGSP,
                Dwarfreglr: DWARFREGLR,
 
+               Adddynrel:        adddynrel,
                Archinit:         archinit,
                Archreloc:        archreloc,
                Archrelocvariant: archrelocvariant,
@@ -97,3 +99,9 @@ func archinit(ctxt *ld.Link) {
                }
        }
 }
+
+func adddynrel(target *ld.Target, ldr *loader.Loader, syms *ld.ArchSyms, s loader.Sym, r loader.Reloc, rIdx int) bool {
+       ld.Exitf("adddynrel currently unimplemented for MIPS")
+       return false
+
+}
index 59afb250950cb4eaddfc3781c402d2748f555c67..a06e6f798147837010674c0d00a1380b7ab98160 100644 (file)
@@ -34,6 +34,7 @@ import (
        "cmd/internal/objabi"
        "cmd/internal/sys"
        "cmd/link/internal/ld"
+       "cmd/link/internal/loader"
        "internal/buildcfg"
 )
 
@@ -51,6 +52,7 @@ func Init() (*sys.Arch, ld.Arch) {
                Minalign:         minAlign,
                Dwarfregsp:       dwarfRegSP,
                Dwarfreglr:       dwarfRegLR,
+               Adddynrel:        adddynrel,
                Archinit:         archinit,
                Archreloc:        archreloc,
                Archrelocvariant: archrelocvariant,
@@ -107,3 +109,9 @@ func archinit(ctxt *ld.Link) {
                }
        }
 }
+
+func adddynrel(target *ld.Target, ldr *loader.Loader, syms *ld.ArchSyms, s loader.Sym, r loader.Reloc, rIdx int) bool {
+       ld.Exitf("adddynrel currently unimplemented for MIPS64")
+       return false
+
+}