Re: [PATCH] kbuild: pass jobserver to cmd_ld_vmlinux.o

From: Sedat Dilek
Date: Thu Jun 16 2022 - 18:54:39 EST


On Thu, Jun 16, 2022 at 4:09 PM Sedat Dilek <sedat.dilek@xxxxxxxxx> wrote:
>
> On Thu, Jun 16, 2022 at 12:45 PM Jiri Slaby <jslaby@xxxxxxx> wrote:
> >
> > Until the link-vmlinux.sh split (cf. the commit below), the linker was
> > run with jobserver set in MAKEFLAGS. After the split, the command in
> > Makefile.vmlinux_o is not prefixed by "+" anymore, so this information
> > is lost.
> >
> > Restore it as linkers working in parallel (esp. the LTO ones) make a use
> > of it.
> >
> > Cc: Sedat Dilek <sedat.dilek@xxxxxxxxx>
> > Cc: Masahiro Yamada <masahiroy@xxxxxxxxxx>
> > Cc: Michal Marek <michal.lkml@xxxxxxxxxxx>
> > Cc: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
> > Fixes: 5d45950dfbb1 (kbuild: move vmlinux.o link to scripts/Makefile.vmlinux_o)
> > Signed-off-by: Jiri Slaby <jslaby@xxxxxxx>
>
> Nice catch.
> ( I have seen some slowdown in my build-time. Will test and report. )
>
> Reviewed-by: Sedat Dilek <sedat.dilek@xxxxxxxxx>
>

No measurable difference in build-time.

Tested-by: Sedat Dilek <sedat.dilek@xxxxxxxxx> # LLVM-14 (x86-64)

-Sedat-

>
> > ---
> > scripts/Makefile.vmlinux_o | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/scripts/Makefile.vmlinux_o b/scripts/Makefile.vmlinux_o
> > index 3c97a1564947..d032f625b576 100644
> > --- a/scripts/Makefile.vmlinux_o
> > +++ b/scripts/Makefile.vmlinux_o
> > @@ -65,7 +65,7 @@ define rule_ld_vmlinux.o
> > endef
> >
> > vmlinux.o: $(initcalls-lds) $(KBUILD_VMLINUX_OBJS) $(KBUILD_VMLINUX_LIBS) FORCE
> > - $(call if_changed_rule,ld_vmlinux.o)
> > + +$(call if_changed_rule,ld_vmlinux.o)
> >
> > targets += vmlinux.o
> >
> > --
> > 2.36.1
> >