From 7d57a9ce82cc6841307bc1c3383808b36a884bc9 Mon Sep 17 00:00:00 2001 From: Than McIntosh Date: Thu, 9 Feb 2023 09:08:44 -0500 Subject: [PATCH] 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 Reviewed-by: Joel Sing Reviewed-by: David Chase Run-TryBot: Than McIntosh --- src/cmd/link/internal/mips/obj.go | 8 ++++++++ src/cmd/link/internal/mips64/obj.go | 8 ++++++++ 2 files changed, 16 insertions(+) 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 + +} -- 2.50.0