Re: linux-next: manual merge of the tip tree with the kbuild tree

From: Masahiro Yamada
Date: Fri May 27 2022 - 02:06:55 EST


On Fri, May 27, 2022 at 1:47 PM Josh Poimboeuf <jpoimboe@xxxxxxxxxx> wrote:
>
> On Fri, May 27, 2022 at 11:19:02AM +0900, Masahiro Yamada wrote:
> > [1] original behavior in Josh's commit
> >
> > $ git checkout 753da4179d08b625d8df72e97724e22749969fd3
> > $ make defconfig
> > $ make -j8 kernel/
> > $ head -n 1 kernel/.fork.o.cmd
> >
> >
> > I do not see the "--linked" parameter in the objtool command.
> >
> >
> >
> >
> > [2] behavior in linux-next
> >
> >
> > $ git checkout next-20220523
> > $ make defconfig
> > $ make -j8 kernel/
> > $ head -n 1 kernel/.fork.o.cmd
> >
> > I see the "--linked" parameter in the objtool command.
> >
> > kernel/fork.o is a direct output from GCC,
> > not from linker.
>
> Yes, good catch. That flag should only be used for linked objects like
> vmlinux.o or some_module.o.
>
> Objtool only runs on such objects when CONFIG_LTO_CLANG,
> CONFIG_X86_KERNEL_IBT, or CONFIG_NOINSTR_VALIDATION (vmlinux.o-only) is
> enabled.
>
> --
> Josh


When CONFIG_LTO_CLANG=y or CONFIG_X86_KERNEL_IBT=y
is "--linked" necessary for single-object modules?


"single-object module" means a module that consists of only one object.

See this figure:
https://patchwork.kernel.org/project/linux-kbuild/patch/20220513113930.10488-6-masahiroy@xxxxxxxxxx/




In your commit, --linked is passed to all *.prelink.o
whether it consists of a single object or links
multiple objects.





--
Best Regards
Masahiro Yamada