]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link: remove support for darwin/386 relocations
authorqmuntal <quimmuntal@gmail.com>
Mon, 15 Sep 2025 12:51:40 +0000 (14:51 +0200)
committerQuim Muntal <quimmuntal@gmail.com>
Tue, 16 Sep 2025 04:59:07 +0000 (21:59 -0700)
The darwin/386 port has been unsupported for years, but some
relocation handling specific to it has managed to survive till now.

Updates #37610

Change-Id: I27ae2ac5462c5f3ec219e9cb5dce6f83b037b816
Reviewed-on: https://go-review.googlesource.com/c/go/+/703777
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Than McIntosh <thanm@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>

src/cmd/link/internal/x86/asm.go

index d535e5fb4d0889feaff098c81bfe73a1f563839d..036514819a0b0684981dc4f68ef7a8fe381dd4da 100644 (file)
@@ -224,51 +224,6 @@ func adddynrel(target *ld.Target, ldr *loader.Loader, syms *ld.ArchSyms, s loade
                su := ldr.MakeSymbolUpdater(s)
                su.SetRelocType(rIdx, objabi.R_ADDR)
                return true
-
-       case objabi.MachoRelocOffset + ld.MACHO_GENERIC_RELOC_VANILLA*2 + 0:
-               su := ldr.MakeSymbolUpdater(s)
-               su.SetRelocType(rIdx, objabi.R_ADDR)
-               if targType == sym.SDYNIMPORT {
-                       ldr.Errorf(s, "unexpected reloc for dynamic symbol %s", ldr.SymName(targ))
-               }
-               return true
-
-       case objabi.MachoRelocOffset + ld.MACHO_GENERIC_RELOC_VANILLA*2 + 1:
-               su := ldr.MakeSymbolUpdater(s)
-               if targType == sym.SDYNIMPORT {
-                       addpltsym(target, ldr, syms, targ)
-                       su.SetRelocSym(rIdx, syms.PLT)
-                       su.SetRelocAdd(rIdx, int64(ldr.SymPlt(targ)))
-                       su.SetRelocType(rIdx, objabi.R_PCREL)
-                       return true
-               }
-
-               su.SetRelocType(rIdx, objabi.R_PCREL)
-               return true
-
-       case objabi.MachoRelocOffset + ld.MACHO_FAKE_GOTPCREL:
-               su := ldr.MakeSymbolUpdater(s)
-               if targType != sym.SDYNIMPORT {
-                       // have symbol
-                       // turn MOVL of GOT entry into LEAL of symbol itself
-                       sData := ldr.Data(s)
-                       if r.Off() < 2 || sData[r.Off()-2] != 0x8b {
-                               ldr.Errorf(s, "unexpected GOT reloc for non-dynamic symbol %s", ldr.SymName(targ))
-                               return false
-                       }
-
-                       su.MakeWritable()
-                       writeableData := su.Data()
-                       writeableData[r.Off()-2] = 0x8d
-                       su.SetRelocType(rIdx, objabi.R_PCREL)
-                       return true
-               }
-
-               ld.AddGotSym(target, ldr, syms, targ, uint32(elf.R_386_GLOB_DAT))
-               su.SetRelocSym(rIdx, syms.GOT)
-               su.SetRelocAdd(rIdx, r.Add()+int64(ldr.SymGot(targ)))
-               su.SetRelocType(rIdx, objabi.R_PCREL)
-               return true
        }
 
        // Handle references to ELF symbols from our own object files.