On Wed, Mar 22, 2023 at 11:26 AM Nick Desaulniers <ndesaulniers@xxxxxxxxxx> wrote: > > On Fri, Feb 24, 2023 at 7:58 AM Björn Töpel <bjorn@xxxxxxxxxx> wrote: > > > > Alexandre Ghiti <alex@xxxxxxxx> writes: > > > > > +cc linux-kbuild, llvm, Nathan, Nick > > > > > > On 2/15/23 15:36, Alexandre Ghiti wrote: > > >> From: Alexandre Ghiti <alex@xxxxxxxx> > > >> > > > I tried a lot of things, but I struggle to understand, does anyone have > > > any idea? FYI, the same problem happens with LLVM. > > Off the top of my head, no idea. > > (Maybe as a follow up to this series, I wonder if pursuing > ARCH_HAS_RELR for ARCH=riscv is worthwhile?) (I had thought about this for my own fun, but the currently only implementation arch/arm64/kernel/head.S uses assembly. Every port needs to write some assembly for the same task, which is a pity. In FreeBSD rtld, glibc, and musl, DT_RELR code is target-independent.) > > > > Don't ask me *why*, but adding --emit-relocs to your linker flags solves > > "the NULL .rela.dyn" both for GCC and LLVM. > > > > The downside is that you end up with a bunch of .rela cruft in your > > vmlinux. > > There was a patch just this week to use $(OBJCOPY) to strip these from > vmlinux (for x86). Looks like x86 uses --emit-relocs for KASLR: > https://lore.kernel.org/lkml/20230320121006.4863-1-petr.pavlu@xxxxxxxx/ > -- > Thanks, > ~Nick Desaulniers > -- 宋方睿