Re: [PATCH] sparc: Avoid unsupported LLD branch relocations
From: Rosen Penev
Date: Thu May 14 2026 - 01:35:07 EST
On Wed, May 13, 2026 at 10:03 PM John Paul Adrian Glaubitz
<glaubitz@xxxxxxxxxxxxxxxxxxx> wrote:
>
> Hi Rosen,
>
> On Wed, 2026-05-13 at 21:19 -0700, Rosen Penev wrote:
> > LLD does not support several SPARC branch relocation types, including
> > R_SPARC_WDISP16, R_SPARC_WDISP19, and R_SPARC_WDISP22. A sparc64
> > allmodconfig LLVM build can therefore fail when trap table code and
> > low-level assembly leave branches to global symbols for the linker.
> >
> > Use local labels for branches that stay within the same assembled
> > object so the assembler can resolve them directly. Convert the
> > remaining cross-object branches and tail calls to absolute set/jmpl
> > sequences, which LLD handles through the usual HI22/LO10 relocations.
> >
> > Disable the unused sparc32 syscall trace entry points when compat
> > support is not built, and request sys_llseek for the native syscall
> > table so the LLD allmodconfig build remains self-contained.
>
> I would rather fix LLD than making such intrusive changes to the SPARC
> code in the kernel. In particular, since this touches the CPU-optimized
> memory routines which had been haunted by subtle bugs for years and were
> only fixed recently.
>
> Is improving LLD in this case not possible?
Above my paygrade. I use this so that allmodconfig succeeds.
>
> Adrian
>
> --
> .''`. John Paul Adrian Glaubitz
> : :' : Debian Developer
> `. `' Physicist
> `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913