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

From: Josh Poimboeuf
Date: Fri May 27 2022 - 10:59:27 EST


On Fri, May 27, 2022 at 03:04:57PM +0900, Masahiro Yamada wrote:
> 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?

Yes.

> "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/

Nice patch description!

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

Yes, we want to keep that behavior. Thanks!

--
Josh