aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThan McIntosh <thanm@google.com>2023-02-09 09:08:44 -0500
committerThan McIntosh <thanm@google.com>2023-02-10 14:29:07 +0000
commit7d57a9ce82cc6841307bc1c3383808b36a884bc9 (patch)
treed41214eda898d13c608dc125fa965ac166a7b455
parentfb79da299127b3ff85e14f37e4616a26e6c2a720 (diff)
downloadgo-7d57a9ce82cc6841307bc1c3383808b36a884bc9.tar.xz
cmd/link: improve error for missing SDYNIMPORT support on mips/mips64
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>
-rw-r--r--src/cmd/link/internal/mips/obj.go8
-rw-r--r--src/cmd/link/internal/mips64/obj.go8
2 files changed, 16 insertions, 0 deletions
diff --git a/src/cmd/link/internal/mips/obj.go b/src/cmd/link/internal/mips/obj.go
index 0139d541df..1caddac6be 100644
--- a/src/cmd/link/internal/mips/obj.go
+++ b/src/cmd/link/internal/mips/obj.go
@@ -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
+
+}
diff --git a/src/cmd/link/internal/mips64/obj.go b/src/cmd/link/internal/mips64/obj.go
index 59afb25095..a06e6f7981 100644
--- a/src/cmd/link/internal/mips64/obj.go
+++ b/src/cmd/link/internal/mips64/obj.go
@@ -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
+
+}